关于Firefox的防指纹保护时区问题解决方法

 

Firefox 的 privacy.resistFingerprinting(防指纹保护)默认会统一浏览器暴露的时区,通常伪装成 UTC(Etc/UTC),而不是直接使用系统时区。

如果想让 Firefox 在开启防指纹保护的同时,使用指定时区,例如 Asia/Shanghai、America/Los_Angeles 或 Europe/London,需要注意:Firefox 原生没有提供一个独立的 resistFingerprinting 时区设置项。

1. 查看当前防指纹设置

  1. 地址栏打开 about:config。

  2. 搜索:

privacy.resistFingerprinting

3. 设置为 true。

再搜索:

privacy.resistFingerprinting.reduceTimerPrecision

以及:

privacy.resistFingerprinting` 

开启 RFP 后,Firefox 会统一部分浏览器指纹特征,其中包括时区。

2. 推荐方案:保留防指纹,但使用真实时区

Firefox 有一个更新的防指纹保护机制,可以选择排除时区伪装。

在 about:config 中修改以下三个参数:

参数

设置值

privacy.resistFingerprinting

false

privacy.fingerprintingProtection

true

privacy.fingerprintingProtection.overrides

+AllTargets,-JSDateTimeUTC

操作步骤:

  1. 将 privacy.resistFingerprinting 设置为 false。

  2. 将 privacy.fingerprintingProtection 设置为 true。

  3. 找到 privacy.fingerprintingProtection.overrides,双击修改为:

+AllTargets,-JSDateTimeUTC

4. 完全退出 Firefox,再重新启动。

这个配置的含义是:

  • +AllTargets:启用所有支持的指纹防护目标。

  • -JSDateTimeUTC:排除 JavaScript 日期时区 UTC 伪装。

  • 其他支持的防指纹保护仍然保留。

这是 Mozilla 支持论坛提供过的解决方案。

注意:这种方案使用的是系统真实时区,并不是让你任意指定一个伪装时区。

3. 如何设置成指定时区?

如果你希望网站识别为指定时区,例如:

时区

标准时区标识

中国

Asia/Shanghai

美国洛杉矶

America/Los_Angeles

美国纽约

America/New_York

英国伦敦

Europe/London

日本东京

Asia/Tokyo

新加坡

Asia/Singapore

在 Windows 上,需要先将系统时区改成目标时区;Linux 可以通过 timedatectl 修改系统时区。

然后使用第 2 节的配置,让 Firefox 保留指纹防护,但不再强制将 JavaScript 时区伪装成 UTC。

4. 验证浏览器时区

打开 Firefox 开发者工具(F12),进入控制台,执行:

Intl.DateTimeFormat().resolvedOptions().timeZone

查看时区偏移:

new Date().getTimezoneOffset()

例如:

  • 上海:-480

  • 东京:-540

  • 洛杉矶:冬令时通常为 480,夏令时为 420

  • UTC:0

参考:Mozilla 官方支持论坛相关解决方案。

 
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享