某些网站有JavaScripts,用于浏览器指纹识别。我知道这些类型的脚本检查并将数据发送回服务器,如:浏览器用户代理,屏幕分辨率,字体列表等。所以我的问题是:是否可以从客户端检查这些脚本?如果是,怎么样?
答案 0 :(得分:1)
是的,可以使用正确的调试工具和时间来检查任何网站上的任何脚本。
对于任何给定的网站,您可以运行Chrome调试器之类的调试器,打开网络选项卡并查看浏览器发出的所有网络请求。然后,您必须对这些请求进行排序,以查看哪些请求包含您要查找的信息。如果您希望找到负责这些请求的脚本,则必须在分析站点和脚本时向后工作,以确定哪个脚本包含发出请求的代码。
我不知道有任何自动方法可以准确地检测哪些请求包含您想要的信息。像Disconnect.me这样的工具会自动保护您的浏览器免受某些常见服务的常见跟踪技术的影响,但该工具也可能会导致网站无法正常运行的某些网站出现问题。
答案 1 :(得分:1)
由于performance.getEntries():
,您可以列出较新浏览器使用的所有脚本var scripts=[].slice.call(performance.getEntries())
.map(function(a){return a.initiatorType==="script" && a.name; })
.filter(Boolean);
alert(scripts); /* on this page in console: ["http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", "http://cdn.sstatic.net/Js/stub.en.js?v=aa4bf2e33f9d", "http://cdn.sstatic.net/Js/full.en.js?v=207a95000ab6", "http://cdn.sstatic.net/Js/snippet-javascript.en.js?v=3a04bf1d3cc0", "http://cdn.sstatic.net/Js/post-validation.en.js?v=59400b6b717e", "http://cdn-prom.sstatic.net/WinterBash/js/core.js?2", "http://cdn.sstatic.net/Js/external-editor.en.js?v=49dac339584c", "http://winterbash2014.stackexchange.com/api/is-participating?callback=wbParticipating2682405&accountId=2682405&host=stackoverflow.com&_=1418692483862", "http://cdn.sstatic.net/Js/wmd.en.js?v=988f5766f506"] */
如果您知道任何行为不良的文件名,您可以检测并抵消它们,或者将网址列表提供给可以自己获取和扫描脚本内容的内容;不确定你的最终目标是什么......