Trang web có thể phát hiện tiện ích trình duyệt nào đang được sử dụng không? Cụ thể trong trường hợp này, tác giả của tiện ích muốn ngăn các trang web xác định thời điểm người dùng đang sử dụng tiện ích. Vì vậy, đối với một ví dụ chung, các lập trình viên tại Yahoo! viết mã để www.yahoo.com có thể biết khi nào người dùng sử dụng Firebug? Và nếu Yahoo! có thể làm được điều này, có điều gì mà các nhà sản xuất Firebug có thể làm để ngăn chặn điều này không?Trang web có thể phát hiện tiện ích trình duyệt nào đang được sử dụng không?
Trả lời
Hình như bạn có thể phát hiện một số trong số họ trong Firefox sử dụng javascript, đây là một bài viết:
http://jeremiahgrossman.blogspot.com/2006/08/i-know-what-youve-got-firefox.html
và thêm một:
http://ha.ckers.org/blog/20060823/detecting-firefox-extentions/
ở đây là làm thế nào nó được phát hiện :
// popular extensions.
var e = {
"Adblock Plus" : "chrome://adblockplus/skin/adblockplus.png",
"Auto Copy" : "chrome://autocopy/skin/autocopy.png",
"ColorZilla" : "chrome://colorzilla/skin/logo.png",
"Customize Google" : "chrome://customizegoogle/skin/32x32.png",
"DownThemAll!" : "chrome://dta/content/immagini/icon.png",
"Faster Fox" : "chrome://fasterfox/skin/icon.png",
"Flash Block" : "chrome://flashblock/skin/flash-on-24.png",
"FlashGot" : "chrome://flashgot/skin/icon32.png",
"Forecastfox" : "chrome://forecastfox/skin/images/icon.png",
"Google Toolbar" : "chrome://google-toolbar/skin/icon.png",
"Greasemonkey" : "chrome://greasemonkey/content/status_on.gif",
"IE Tab" : "chrome://ietab/skin/ietab-button-ie16.png",
"IE View" : "chrome://ieview/skin/ieview-icon.png",
"JS View" : "chrome://jsview/skin/jsview.gif",
"Live HTTP Headers" : "chrome://livehttpheaders/skin/img/Logo.png",
"MeasureIt" : "chrome://measureit/skin/measureit.png",
"SEO For Firefox" : "chrome://seo4firefox/content/icon32.png",
"SEOpen" : "chrome://seopen/skin/seopen.png",
"Search Status" : "chrome://searchstatus/skin/cax10.png",
"Server Switcher" : "chrome://switcher/skin/icon.png",
"StumbleUpon" : "chrome://stumbleupon/content/skin/logo32.png",
"Tab Mix Plus" : "chrome://tabmixplus/skin/tmp.png",
"Torrent-Search Toolbar" : "chrome://torrent-search/skin/v.png",
"User Agent Switcher" : "chrome://useragentswitcher/content/logo.png",
"View Source With" : "chrome://viewsourcewith/skin/ff/tb16.png",
"Web Developer" : "chrome://webdeveloper/content/images/logo.png",
"Unhide Passwords" : "chrome://unhidepw/skin/unhidepw.png",
"UrlParams" : "chrome://urlparams/skin/urlparams32.png",
"NewsFox" : "chrome://newsfox/skin/images/home.png",
"Add N Edit Cookies" : "chrome://addneditcookies/skin/images/anec32.png",
"GTDGmail" : "chrome://gtdgmail/content/gtd_lineitem.png",
"QuickJava" : "chrome://quickjava/content/js.png",
"Adblock Filterset.G Updater" : "chrome://unplug/skin/unplug.png",
"BBCode" : "chrome://bbcode/skin/bbcode.png",
"BugMeNot" : "chrome://bugmenot/skin/bugmenot.png",
"ConQuery" : "chrome://conquery/skin/conquery.png",
"Download Manager Tweak" : "chrome://downloadmgr/skin/downloadIcon.png",
"Extended Cookie Manager" : "chrome://xcm/content/allowed.png",
"FireBug" : "chrome://firebug/content/firebug32.png",
"FoxyTunes" : "chrome://foxytunes/skin/logo.png",
"MR Tech Disable XPI Install Delay" : "chrome://disable_xpi_delay/content/icon.png",
"SessionSaver .2" : "chrome://sessionsaver/content/ss.png",
"spooFX" : "chrome://spoofx/skin/main/spoofx.png",
"Statusbar Clock" : "chrome://timestatus/skin/icon.png",
"Torbutton" : "chrome://torbutton/skin/bigbutton_gr.png",
"UnPlug" : "chrome://unplug/skin/unplug.png",
"View Source Chart" : "chrome://vrs/skin/vrssmall.png",
"XPather" : "chrome://xpather/content/iconka.png",
};
if (is_mozilla) {
showExtensions();
}
function showExtensions() {
for (var i in e) {
var img = document.createElement("img");
img.setAttribute("border", '0');
img.setAttribute("width", '0');
img.setAttribute("height", '0');
img.setAttribute("onload", "document.getElementById('ext').
appendChild(document.createElement('li')).innerHTML='" + i + "'");
img.setAttribute("src", e[i]);
}
}
Vì vậy, có vẻ như để ngăn chặn loại phát hiện này, bạn không cần phải có tài nguyên duy nhất có thể xác định plugin hoặc đặt tên cho tài nguyên của bạn giống với tên plugin hiện có để che dấu.
Thông tin này không phải là một phần của giao thức http và nếu phía máy chủ nhận được yêu cầu từ trình duyệt, nó hầu như không ảnh hưởng đến loại thông tin nào nằm trong tiêu đề http. Cách duy nhất nó có thể được thực hiện là thông qua JavaScript, để bạn, với tư cách là một lập trình viên, hãy tạo javascript để lấy thông tin này ra khỏi trình duyệt. Nhưng chỉ trong trường hợp trình duyệt có các chức năng sẵn có cho yêu cầu này.
Có. Tôi sử dụng tính năng này để tự động điền vào trường biểu mẫu ẩn khi người dùng yêu cầu trợ giúp, vì vậy tôi biết nếu có một plugin gây ra sự cố:
var plugins = "";
for (var i = 0; i < navigator.plugins.length; i++)
{
plugins += navigator.plugins[i].name;
if (i != (navigator.plugins.length - 1))
{
plugins += ", ";
}
}
Câu hỏi là về Tiện ích mở rộng chứ không phải plugin. (Hãy thử 'javascript: navigator.plugins [0] .name' trong thanh địa chỉ Firefox của bạn để xem tên của plugin đầu tiên) –
+1, ngay cả khi điều này không trả lời câu hỏi, đây là một ý tưởng thực sự tuyệt vời! – tster
Plugin và tiện ích mở rộng và tiện ích bổ sung có cùng ý nghĩa với tôi. –
- 1. Phát hiện xem trình duyệt có các phím mũi tên/bàn phím trong trang web không
- 2. Phát hiện xem mã có đang chạy dưới dạng Tiện ích mở rộng của Chrome
- 3. Trình duyệt web có thể sử dụng MQTT không?
- 4. Có thể phát hiện xem VoiceOver có đang ở trên một trang web trên iPhone không?
- 5. Phát hiện nếu hiện đang cuộn trang web trên Android
- 6. Làm cách nào để tiện ích mở rộng Safari biết được chế độ Duyệt web riêng tư có bật không?
- 7. Tiện ích mở rộng trình duyệt Android
- 8. Sử dụng xác thực facebook cho tiện ích mở rộng trình duyệt
- 9. Cách xây dựng tiện ích cho trang web của tôi
- 10. Phát hiện từ trình duyệt nếu một ứng dụng cụ thể được cài đặt trong Android
- 11. Có trình duyệt web đồ họa nào có thể sử dụng bên trong các emacs không?
- 12. Phát hiện JavaScript/Thống kê trình duyệt
- 13. Làm cách nào để phát hiện xem trình duyệt có đang chặn cửa sổ bật lên không?
- 14. Có cách nào để chuyển một tiện ích chrome sang các trình duyệt khác không?
- 15. Chúng tôi có thể có tiện ích bổ sung (FireFox) hoặc tiện ích mở rộng (Chrome) trong trình duyệt dành cho thiết bị di động [Android hoặc iPhone]
- 16. Cách phát hiện xem MemoryMappedFile có đang sử dụng không
- 17. Cách phát hiện trong perl nếu ứng dụng khách đang sử dụng trình duyệt dành cho thiết bị di động?
- 18. Tạo tiện ích javascript cho các trang web khác
- 19. Phát triển tiện ích mở rộng của trình duyệt chéo trong C++
- 20. Bạn sử dụng Tiện ích mở rộng của Chrome như thế nào để thay đổi CSS của trang web?
- 21. Có cách nào bằng cách sử dụng Jquery để phát hiện nút quay lại được nhấn qua các trình duyệt
- 22. Có cách nào để đính kèm trình duyệt đang chạy vào trình duyệt web selenium trong java không?
- 23. trình duyệt phát hiện
- 24. Bạn có đang sử dụng Tiện ích mở rộng song song không?
- 25. phát hiện những phông chữ được sử dụng trong một trang web
- 26. Sử dụng javascript để phát hiện loại trình duyệt
- 27. Làm thế nào để thực hiện một mục tiêu thả cho tiện ích trình duyệt SWT
- 28. Phát hiện Trình duyệt iPhone
- 29. Phát hiện xem trang web có chuyển hướng javascript không
- 30. Thay đổi Trang chủ trong trình duyệt Chrome từ Tiện ích mở rộng
. Một số khác (cùng một phương thức, nhưng có nhiều phần mở rộng hơn): http://www.phpsolvent.com/wordpress/?p=1888 –
Cảm ơn bạn, Romario. Câu trả lời của bạn chắc chắn đã chỉ cho tôi đúng hướng. Có vẻ như tôi không sử dụng hình ảnh (không tuyệt vời nhưng ok) hoặc có người dùng tắt javascript (xấu), người dùng có thể sử dụng tiện ích mở rộng của Firefox nặc danh. Một trang web có thể tìm kiếm các tệp khác (không phải hình ảnh) trong tiện ích mở rộng của tôi không? Ngoài ra, bạn có biết vấn đề này trong IE hay Google Chrome như thế nào không? – John
Vâng, tôi đoán là một số tài nguyên có thể truy cập được, có thể chỉ những hình ảnh đó mới hiển thị chúng trên trang bổ trợ. Đối với IE - họ sử dụng ActiveX làm định dạng addon, có chức năng để xem ActiveX có được cài đặt hay không, vì vậy nếu bạn biết tên bạn có thể phát hiện nếu nó có ở đó. –