Firefox 的 privacy.resistFingerprinting(防指纹保护)默认会统一浏览器暴露的时区,通常伪装成 UTC(Etc/UTC),而不是直接使用系统时区。
如果想让 Firefox 在开启防指纹保护的同时,使用指定时区,例如 Asia/Shanghai、America/Los_Angeles 或 Europe/London,需要注意:Firefox 原生没有提供一个独立的 resistFingerprinting 时区设置项。
1. 查看当前防指纹设置
-
地址栏打开
about:config。 -
搜索:
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
4. 完全退出 Firefox,再重新启动。
这个配置的含义是:
-
+AllTargets:启用所有支持的指纹防护目标。 -
-JSDateTimeUTC:排除 JavaScript 日期时区 UTC 伪装。 -
其他支持的防指纹保护仍然保留。
这是 Mozilla 支持论坛提供过的解决方案。
注意:这种方案使用的是系统真实时区,并不是让你任意指定一个伪装时区。
3. 如何设置成指定时区?
如果你希望网站识别为指定时区,例如:
|
时区 |
标准时区标识 |
|---|---|
|
中国 |
|
|
美国洛杉矶 |
|
|
美国纽约 |
|
|
英国伦敦 |
|
|
日本东京 |
|
|
新加坡 |
|
在 Windows 上,需要先将系统时区改成目标时区;Linux 可以通过 timedatectl 修改系统时区。
然后使用第 2 节的配置,让 Firefox 保留指纹防护,但不再强制将 JavaScript 时区伪装成 UTC。
4. 验证浏览器时区
打开 Firefox 开发者工具(F12),进入控制台,执行:
Intl.DateTimeFormat().resolvedOptions().timeZone
查看时区偏移:
new Date().getTimezoneOffset()
例如:
-
上海:
-480 -
东京:
-540 -
洛杉矶:冬令时通常为
480,夏令时为420 -
UTC:
0
