我想我可以通过 Javascript 检测浏览器本身内部的 Tor 浏览器吗?

2023-11-25

如果浏览器是 Tor 浏览器,我想禁用我正在构建的网络应用程序的某些功能。我可以在浏览器本身(客户端,而不是服务器端)内部查明浏览器是否是 Tor 浏览器?

我更喜欢一个不发出任何 HTTP 请求来将浏览器的 IP 与 Tor 出口节点进行匹配的解决方案。

背景:在我的例子中,Tor 浏览器会弹出一个对话框,询问用户“Tor 浏览器是否应该允许该网站提取 HTML5 画布图像数据?”,因为 Tor 浏览器表示,画布图像数据可用于唯一标识浏览器。

Update:阅读下面的答案后:也许对我来说最好的解决方案是在服务器端保留 Tor 出口节点列表(最新列表,定期刷新),当浏览器加载页面时,我设置一个变量在一个<script>标签,如果浏览器的IP匹配这样的退出节点:var isProbablyTorBrowser = true。然后,客户端不需要额外的请求或复杂的逻辑。


Tor 浏览器并非设计为无法检测(这是不可能的)。相反,它的设计使所有副本彼此无法区分:您无法严格通过跟踪浏览器从一个站点到另一个站点,或从一次访问到另一个站点的情况。浏览器指纹识别.

这赋予了它自己独特的指纹。截至目前,浏览器

  1. 有一个用户代理Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0
  2. 屏幕分辨率与浏览器窗口尺寸相匹配(特别是尺寸为 1000x800 时)
  3. 时区为“0”(GMT)
  4. 没有插件(navigator.plugins是空的)

可能是TBB浏览器。当 Firefox 的下一个 ESR 版本出现时,用户代理字符串可能会发生变化,最有可能的是Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/38.0.

仅屏幕分辨率/浏览器窗口匹配就可以唯一地识别 TBB:即使在全屏模式下,Firefox 中的窗口高度和屏幕高度之间也存在一像素的差异。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我想我可以通过 Javascript 检测浏览器本身内部的 Tor 浏览器吗? 的相关文章

随机推荐