如何识别正在运行的 JavaScript 网站

How can I identify what JavaScript website is running?

本文关键字:运行 JavaScript 网站 何识别 识别      更新时间:2023-09-26

一些网站有用于浏览器指纹识别的JavaScript。我知道这些类型的脚本检查并将数据发送回服务器,例如:浏览器用户代理,屏幕分辨率,字体列表等。所以我的问题是:是否可以从客户端检查这些脚本?如果是,如何?

你可以

列出新浏览器使用的所有脚本,这要归功于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"] */

如果您知道任何行为不良的文件名,您可以检测并抵消它们,或者将 URL 列表提供给可以自行获取和扫描脚本内容的东西;不确定您的最终目标是什么...

是的,可以使用正确的调试工具和时间来检查任何网站上的任何脚本来整理内容。

对于任何给定的网站,您都可以运行调试器(如 Chrome 调试器),打开"网络"选项卡并查看浏览器发出的所有网络请求。 然后,您必须对这些请求进行排序,以查看哪些请求包含您要查找的信息。 如果您随后想要找到负责这些请求的脚本,则必须反向分析站点和脚本,以确定哪个脚本包含发出请求的代码。

我不知道有任何自动方法来准确检测哪些请求包含您想要的信息。 像 Disconnect.me 这样的工具会自动保护您的浏览器免受某些常见服务的一些常见跟踪技术的影响,但该工具也可能在某些站点上导致问题,然后站点将无法正常工作。