必须启用macos sequoia+ safari的“防止指纹识别跟踪”开关才能屏蔽字体枚举,访问browserleaks.com/fonts验证显示“font enumeration is blocked”或仅10种基础字体即生效;旧系统需先升级,高风险场景可禁用js、启用icloud专用代理或重置字体缓存。

当你在Mac上使用Safari访问某些网站时,它们可能通过document.fonts.enumerate()或CSS @font-face加载行为悄悄读取你系统安装的全部字体列表——这个列表组合具有高度唯一性,足以将你的设备从数百万台Mac中精准识别出来。要切断这条指纹泄露路径,必须启用Safari内置的字体混淆机制并验证其生效状态。
启用Safari“防止指纹识别跟踪”总开关
这一步是基础前提,不开启则后续所有字体保护措施均无效。Safari不会单独提供“禁用字体枚举”选项,而是将其整合进更高级的指纹防护框架中。
打开Safari浏览器 → 顶部菜单栏点击「Safari」→「设置」→ 切换到「隐私」标签页 → 勾选【防止指纹识别跟踪】。
⚠️ 注意:该选项仅在macOS Sequoia(15.0)及更高版本中可见。若你的系统为Ventura(13.x)或Sonoma(14.x),需先升级系统才能启用此功能。
验证字体枚举是否已被屏蔽
启用后必须手动验证,因为部分旧版网页仍可能绕过默认策略尝试探测。
在Safari中访问 https://browserleaks.com/fonts → 等待页面加载完成 → 查看「Fonts」区块显示结果。
如果看到“Font enumeration is blocked”或仅列出系统默认的10种基础字体(如Helvetica、Times、Courier等),说明防护已生效;若显示上百个字体名称(如“Adobe Garamond Pro”“PingFang HK”“Noto Sans CJK SC”),说明设置未起作用或被当前网站临时规避。
补充加固:针对高风险场景的手动干预
方法一:为特定网站强制禁用JavaScript
某些字体探测脚本依赖JavaScript执行,对银行、政务类高敏感站点可逐个关闭JS权限。
在Safari中打开目标网站 → 地址栏左侧点击锁形图标 → 「网站设置」→ 将「JavaScript」设为「拒绝」。
方法二:启用iCloud专用代理(需iCloud+订阅)
该代理不仅隐藏IP,还会在转发请求时剥离User-Agent中的字体相关字段,并统一响应字体查询为精简集合。
进入「系统设置」→「Apple ID」→「iCloud」→ 开启「iCloud专用代理」→ 返回Safari重新加载测试页。
方法三:重置字体缓存(仅当验证失败时操作)
终端中执行:sudo atsutil databases -remove → 输入管理员密码 → 重启Safari。
【这会清空所有应用的字体缓存,部分设计软件可能短暂出现字体缺失】











