Firefox 包含了Resist Fingerprinting(抗阻指纹识别)的功能,它限制了用户操作系统和硬件暴露在网站上的个人特征,不建议在正常情况下使用。 抗阻指纹识别采用非常严格的方法,经常会导致网页运行不正常。Mozilla 不建议启用“抗阻指纹识别”,而是建议使用受支持的“指纹保护”模式,Fingerprinting Protection 可最大限度地减少损坏网站。
抗阻指纹识别功能由附加组件控制,这意味着它可能是在不知情的情况下启用的。也可以通过更改 Firefox 配置编辑器(about:config)中的首选项 privacy.resistFingerprinting 进行设置。
如何判断是否启用了抗阻指纹识别,如果启用了,如何将其禁用?
要禁用抗阻指纹识别, 请
- 在 地址栏 里输入about:config,然后按 回车。
有时会出现警告页面。点击 ,以打开 about:config 页面。 - 在顶部的搜索栏中搜索 privacy.resistFingerprinting。
- 会出现许多首选项,请查看 privacy.resistFingerprinting 或 privacy.resistFingerprinting.pbMode 是否为 true。
- 要判断扩展程序是否在控制此首选项,可以单击将该值切换回 false。然后重启浏览器。 重启后,再次访问 about:config,看看该值是否已恢复为 true。
如果是这样,你需要确定是哪个扩展程序控制了首选项,然后禁用或删除它们。 一种方法是逐个禁用已安装的扩展程序,然后重启浏览器,看看重启 Firefox 后首选项是否有变化。 请注意,在极少数情况下,多个 扩展程序可能会设置首选项。
抗阻指纹识别技术会如何破坏网页?
抗阻指纹识别会导致许多奇怪的行为,这些行为通常被归类为 Bug。 虽然这些行为确实会导致网站出现奇怪或不正确的行为,但这些行为也意味着抗阻指纹识别功能正常运行,这也是我们不建议普通 Firefox 用户使用此功能的原因。
同样重要的是要注意,如果设置了 privacy.resistFingerprinting.pbMode,但没有设置 privacy.resistFingerprinting,那么在正常窗口上仍会出现某些抗阻指纹识别行为,因为无法在每个窗口中分离这些行为。 这包括使用固定颜色而非系统颜色等。
最常见的意外行为包括:
- 时间显示不正确,更准确地说,是显示在错误的时区。
- 图片,尤其是在浏览器中上传/编辑图片后创建的图片,可能会显示随机线条。例如:
- 某些动画或游戏可能运行缓慢。
- 页面可能未按预期语言进行本地化,而是以英语显示。
- 对于 Mac 或 Linux 用户,可能会收到适用于 Windows 操作系统的信息或下载。
- 图标、地图或图像可能无法高保真渲染,看起来模糊或分辨率低。
- 游戏手柄不起作用。
- 书写板、手写笔或触摸屏无法正常工作。
- 不遵守显示偏好设置,如明暗模式、减少动画和减少透明度。
- 打开新窗口时,它们被固定为特定大小。
- 本机系统颜色被替换,取而代之的是固定值
抗阻指纹识别会改变什么?
抗阻指纹识别会改变许多浏览器行为,以下列表旨在提供技术性信息,并尽可能全面,但仍有可能意外遗漏某些内容。
- 报告的时区为 UTC 或冰岛时区
- JavaScript 中的数学运算可能会报告与常规运算略有不同的值
- 地区报告为 en-US
- 网站只能使用预装在操作系统中的字体。这也不包括语言包中的字体。
- 固定了导航器对象的几个属性,包括硬件并发值、应用程序版本和构建 ID。 报告的用户代理版本是主要版本(如 119.0 而不是 119.1)。
- HTTP 标头中报告的操作系统是 Windows,而 JavaScript 中导航器对象中报告的操作系统是准确的。
- 在未授予任何权限的情况下,只有一个摄像头和麦克风被报告为媒体设备。某些设备错误可能会报告为“不允许”,而不是“未找到”。不报告设备更改事件。
- 视频流和音频流标签固定为“内部摄像头”或“内部麦克风”。
- 媒体功能报告为支持、流畅和不节能。
- 视频面向模式为固定值。
- 音频首选采样率报告为 44100,采样率报告为 48000。
- 音频上下文延迟为固定值,最大通道数为 2。
- 从未报告存在游戏手柄
- 网络连接类型报告为‘未知’
- 在 macOS 上,不遵守操作系统字体平滑首选项
- 禁用所有设备传感器。
- 帧率锁定为 60 fps。
- 所有报告的时间戳、计时器和时钟的精度都降低到 16.67 毫秒(以匹配 60fps)。
- 报告的外窗口尺寸与内窗口尺寸相同
- window.screenX 和 screenY 属性以及 mozInnerScreenX 和 mozInnerScreenY 和事件屏幕坐标始终报告为 0,0
- 屏幕的顶部、左侧、宽度和高度,以及屏幕可用的顶部、左侧、宽度和高度都与窗口内部尺寸相同
- 屏幕像素深度报告为 24
- 设备像素比被报告为 2.0
- CSS 分辨率被报告为缩放级别,而不是真正的设备像素比。
- 屏幕方向设置为横向,因为屏幕角度设置为 0,方向改变事件被抑制。
- 触摸事件的半径、旋转和力度属性设置为 0
- 指针事件的最大触摸指针设置为 0
- 倾斜度和压力等几个指针事件属性被设置为常量。
- 所有指针事件都被设置为来自单一主指向设备。
- 报告指针功能为 Coarse(Android)或 Fine & Hover(桌面)。
- 修改键盘事件的按键代码,以避免泄露键盘布局
- WebSpeech API 不报告任何可用声音
- CSS 将首选颜色方案报告为浅色
- CSS 将报告首选的减弱运动为 False
- CSS 将首选对比度报告为无偏好