2010-11-02 52 views
5

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

4

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.

+0

. 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 –

+0

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

+0

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ó ở đó. –

1

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.

1

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 += ", "; 
    } 
} 
+1

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

+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

+0

Plugin và tiện ích mở rộng và tiện ích bổ sung có cùng ý nghĩa với tôi. –

Các vấn đề liên quan