Может ли веб-сайт определить, какие расширения браузера используются? - PullRequest
5 голосов
/ 02 ноября 2010

Может ли веб-сайт определить, какие расширения браузера используются? В частности, в этом случае автор расширения желает запретить веб-сайтам определять, когда пользователи используют расширение. Так, например, могут ли программисты из Yahoo! написать код, чтобы www.yahoo.com мог определить, когда пользователи использовали Firebug? И если Yahoo! может сделать это, могут ли создатели Firebug что-нибудь сделать, чтобы предотвратить это?

Ответы [ 3 ]

4 голосов
/ 02 ноября 2010

Похоже, что вы можете обнаружить некоторые из них в Firefox, используя javascript, вот статья:

http://jeremiahgrossman.blogspot.com/2006/08/i-know-what-youve-got-firefox.html

и еще один:

http://ha.ckers.org/blog/20060823/detecting-firefox-extentions/

вот как это обнаружено:

// 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]);
 }

}

Таким образом, похоже, что для предотвращения такого рода обнаружения вам не нужно иметь уникальные ресурсы, которые могут идентифицировать плагин или назвать ваш ресурс тем же именем, что и существующий плагин для маскировки.

1 голос
/ 02 ноября 2010

Да.Я использую это для автоматического заполнения скрытого поля формы, когда пользователи запрашивают помощь, поэтому я знаю, есть ли плагин, вызывающий проблемы:

var plugins = "";
for (var i = 0; i < navigator.plugins.length; i++)
{
    plugins += navigator.plugins[i].name;
    if (i != (navigator.plugins.length - 1))
    {
        plugins += ", ";
    }
}
1 голос
/ 02 ноября 2010

Эта информация не является частью протокола http, и если серверная сторона получает запросы от браузеров, она едва может повлиять на то, какая информация находится в заголовке http. Единственный способ сделать это - использовать JavaScript, чтобы вы, как программист, создали javascript, который получает эту информацию из браузеров. Но только в том случае, если в браузере есть доступные функции для этого требования.

...