如何更改 Firefox 中 JavaScript 检测到的平台/操作系统?

信息安全 隐私 网页浏览器 javascript 火狐
2021-08-24 07:01:54

转到https://panopticlick.eff.org/这个站点知道您的确切操作系统/平台,并且更改用户代理无济于事,因为这里使用了 JavaScript。

有没有办法改变/伪造它?

我在这个网站上找到了一个脚本,但它似乎不起作用

// ==UserScript==
// @name        Faker
// @namespace   x
// @version     1
// @grant       none
// @run-at document-start
// ==/UserScript==

var fake_navigator = {};

for(var i in navigator) {
  fake_navigator[i] = navigator[i];
}

fake_navigator.platform = 'Linux armv7l';

navigator = fake_navigator;

我曾尝试使用 Greasemonkey 在 Firefox 上运行它,但我仍然将 Win32 作为我的平台(我原来的平台..)。

该代码已过时/我运行错误?可能还有其他方法吗?

4个回答

navigator对象是通过window.navigator它访问的,实际上是一个只读属性。

因此navigator = fake_navigator;将不起作用。

但是,可以重新定义 getter platform

navigator.__defineGetter__('platform', function(){
    return 'foo' // customized user agent
});

然后查询属性将返回函数内的值。

window.navigator.platform
"foo"

就 JavaScript 属性而言,这将伪造您的平台,但 Panopticlick 是关于对整个浏览器进行指纹识别,而不仅仅是获取一个属性并通过它来识别您。因此,如果您出于隐私原因这样做,那么我不建议将此作为有效措施。

随着 Chrome、Firefox、Edge、Opera 中引入的新技术……过去几年,您无法控制自己的隐私。某些东西是为了破坏您的隐私并为您带来比闪存更好的服务,例如,这更糟。

例如,Webrtc:你不能欺骗 webrtc,你只能禁用它。如果您阻止 webrtc,那么服务器将拥有 1000 个普通用户,而您将禁用 webrtc!这意味着你已经被识别出来了。

这只是您必须欺骗、禁用或不能欺骗或禁用的 1001 件事中的 1 件事:/ 结论:您不能相信您所知道的,而且您只知道您已经知道的,所以今天隐藏您的身份的最佳方式就是不隐藏你的身份。或成为该领域的工程师。

您描述了一种称为指纹识别的方法。使用 JavaScript 或 Flash,他们可以获取有关您系统的各种属性的详细信息,并生成一个最可能唯一的哈希来识别您和您的系统。请注意,例如用户代理欺骗并没有帮助,因为即使是空的用户代理也会使您的数据更加独特。您的目标是,通过尽可能多地更改每个请求的选项来不断更改您的身份(有插件),或者使用世界上最常见的配置,这样您就不会获得唯一的指纹。我正在考虑最广泛使用的没有插件的最常用浏览器的颠覆和最常见的操作系统、颜色深度、屏幕/窗口大小等。其中一些实际上可以使用插件进行更改,而另一些则不能。

你说你想改变它,但它必须是Javascript吗?如果是 Javascript,您可能需要访问StackOverflow,因为这超出了本网站的范围。

如果不需要 Javascript 代码,而您只是想要任何方式来做到这一点,那么是的,您可以使用Random Agent Spoofer最好与NoScriptuBlock Origin一起使用。不过,这可能会成为微观管理的噩梦。

但是,您需要配置 Random Agent Spoofer 的选项。您必须禁用 WebRTC、webGL、限制可检测字体等。配置此设置,直到您有适当的锡箔设置。