使用 Safari 浏览器访问网页时,部分网站可能借助 Canvas、WebGL 或 AudioContext 这类 API 悄悄提取设备特征,进而生成用于追踪的唯一标识,也就是所谓的“浏览器指纹”。这种指纹记录技术并非无解,关键在于确认系统级防护是否已全面到位。下面介绍几种切实有效的防护方案。

一、启用“先进追踪和指纹识别保护”全局模式
这是苹果官方原生集成的隐私增强功能,自 iOS 18 及 macOS Sequoia 版本起提供。开启后,它会在所有浏览会话中主动限制高风险 API 的输出精度,例如 Canvas 像素读取、字体枚举、WebGL 渲染参数等都会受到影响。操作路径简单直接:在 iPhone 或 iPad 上,打开“设置”应用,找到“Safari 浏览器”并进入,点击“高级”,然后进入“高级追踪和指纹识别保护”,将开关切换为“所有浏览”即可生效。
二、确保智能防跟踪(ITP)完全激活并优化权限配置
智能防跟踪(ITP)不仅拦截跨站 Cookie 同步,还会实时干预指纹采集脚本。例如,它可能延迟或阻断 getImageData()、toDataURL() 这类 Canvas 方法返回的原始数据,同时通过更精细的权限管控减少可供指纹采集的特征维度。具体操作:先打开“设置”中的“Safari 浏览器”,确认“阻止跨站跟踪”已开启。接着进入“网站”权限管理,检查并禁用目标网站对摄像头、麦克风、位置及精确地理位置的访问权限。最后,回到 Safari 主设置页,开启“隐藏 IP 地址”并选择“仅跟踪器”模式。
三、启用 Safari 技术预览版中的实验性指纹抑制选项
如果你正在使用 Safari 技术预览版,还有一套更前沿的防护手段可选。这个版本包含尚未推向正式版的功能,例如强制 Canvas 返回模糊化像素数据、屏蔽 AudioContext 采样率暴露、限制 WebGL vendor/renderer 字符串精度等。操作也不复杂:在 Safari 地址栏输入 safari://features 并回车,向下滚动找到标记为“Privacy”或“Fingerprinting”的实验性功能条目,然后将 Canvas Script Blocking、Audio Fingerprint Mitigation 和 WebGL Vendor Obfuscation 这三项都设为 Enabled。完成后关闭并重新启动 Safari 浏览器即可生效。
四、安装支持 API 层级拦截的内容拦截扩展
对于系统级防护可能覆盖不到的场景,可以考虑引入第三方扩展。这类扩展能在 JavaScript 执行前注入规则,直接重写或删除那些涉及指纹采集的核心函数调用。具体操作:先前往 App Store 或 Mac App Store,搜索并安装适配了 Safari Web Extension API 的内容拦截器,比如 AdGuard for Safari 或 Privacy Badger。安装后进入“设置”→“Safari 浏览器”→“扩展”,启用对应扩展。接着在扩展自己的设置中,将Canvas API 拦截与WebGL 指纹混淆这类选项开启。
五、部署用户脚本覆盖关键 API 返回值
如果你对脚本操作比较熟悉,还可以通过注入自定义 JavaScript 来强制覆盖关键方法。这种做法能直接让网站无法获取真实的设备特征。操作流程:先安装一个支持用户脚本的 Safari 扩展,比如 iMacros for Safari 或兼容 Userscripts API 的现代扩展。然后创建新脚本,插入核心覆盖逻辑,例如:Object.defineProperty(CanvasRenderingContext2D.prototype, 'getImageData', { value: () => new ImageData(1, 1) })。同时,还可以添加对 AudioContext.sampleRate 和 navigator.plugins 的固定值返回语句。保存并启用该脚本后,刷新任意网页就能验证它是否生效。
