指纹

字体指纹与跨平台字体一致性

字体可用性和文本指标可能把浏览器会话关联起来。BotBrowser 让字体行为在 Windows、macOS、Linux 和 Android 目标环境中与所选 profile 保持一致。

文档中心

想直接看维护中的产品文档?

这篇文章对应的主题已经有文档中心页面。需要规范流程、当前参数和长期参考时,优先看 docs。

简介

字体是最安静的浏览器身份信号之一。网站不需要权限,就能观察文本布局是否像 Windows、macOS、Linux 或移动设备。它可以查看字体可用性、fallback 行为和文本测量的高层模式,然后把这些模式与其他浏览器信号组合。

对隐私团队来说,风险不是某一个孤立值,而是不一致。浏览器 profile 可能声称自己是 Windows 桌面环境,但宿主机暴露了 Linux 风格的字体行为。移动身份可能带着桌面字体特征。同一个 profile 可能在一个环境稳定,在另一个环境漂移。

BotBrowser 把字体视为完整浏览器身份的一部分。字体行为会与所选 profile 对齐,让同一个 profile 可以在不同宿主系统和部署环境中保持一致。

为什么字体信号重要

字体跟踪之所以有效,是因为本地文本行为受到操作系统、语言包、渲染栈和安装软件影响。即使页面没有直接获得字体列表,也可以通过正常浏览器行为观察布局和渲染差异。

这在三个方面很重要:

  • 平台身份:Windows、macOS、Linux 和 Android 目标 profile 不应暴露宿主机字体特征。
  • 会话连续性:同一个 profile 在不同启动和机器上应保持稳定字体行为。
  • 跨信号一致性:字体行为必须与 profile 的浏览器品牌、设备类别、语言和渲染模型一致。

强字体保护不是阻断布局。页面仍然需要正常渲染文本。目标是在保持网页兼容性的同时,让字体行为与 profile 一致。

BotBrowser 的方式

BotBrowser 在浏览器引擎层处理字体一致性。profile 定义目标字体环境,浏览器在向网页内容暴露字体相关行为时使用这个目标。

最新的 BotBrowser 字体工作改进了 stock font catalog、目标平台字体覆盖和 profile-backed 运行的跨宿主行为。Windows profile 在 Linux 宿主上运行时,应该像所选 Windows profile,而不是像底层 Linux 服务器。macOS、Linux、Android 目标和 CJK-heavy profile 也遵循同样原则。

这对服务器部署尤其重要。很多生产集群运行在 Linux 上,因为它高效、易扩展,但面向客户的浏览器身份可能需要代表桌面或移动环境。字体一致性关闭了宿主基础设施暴露的一条常见路径。

好的字体一致性是什么样

成熟的字体保护模型应该很平稳:

  • 同一个 profile 在不同宿主上运行时,文本布局保持稳定。
  • profile 目标字体和 fallback 行为与所选平台一致。
  • CJK 和重 locale 页面在不同环境中可预测渲染。
  • Canvas 文本、DOM 布局和其他高层文本表面讲述同一个身份故事。
  • 浏览器更新保持 profile 的预期身份,除非 profile 本身发生变化。

这种平稳很有价值。它意味着字体行为不再是会关联会话或暴露部署宿主的意外信号。

为什么简单覆盖不够

基础 JavaScript 覆盖和扩展级改动通常只关注一个可见属性。字体行为更宽。文本布局、fallback 链、渲染路径和 Canvas 文本输出都需要一致。如果一层说浏览器有目标平台字体环境,另一层却用宿主特征渲染,这种不一致本身就会成为信号。

这就是 BotBrowser 把字体处理放在靠近引擎位置的原因。profile 应该决定浏览器行为,而不只是改变某个脚本可见属性。

如何验证

外部验证应该关注结果,而不是发布低层探测:

  • 在两个代表性宿主环境上运行同一个 profile。
  • 比较包含普通文本、必要时包含 CJK 文本和 Canvas 文本的代表性页面。
  • 确认观察到的行为与 profile 目标一致,而不是与宿主机一致。
  • 把结果保存到发布或 profile 验证包中。

更深入的团队内部审阅可以配合 V8Log ForensicsCanvasLab,查看工作流触碰过哪些高层信号族。

最适合的场景

字体一致性最适合混合基础设施:

  • Linux 服务器上的 Windows 目标 profile。
  • 非 macOS 宿主上的 macOS 目标 profile。
  • 桌面自动化环境中的 Android 目标 profile。
  • fallback 和文本指标属于正常页面行为的 CJK-heavy 工作流。
  • 同一个 profile 需要跨机器稳定的大规模浏览器集群。

核心目标始终相同:浏览器身份应该来自 profile,而不是来自意外的宿主机差异。

相关资源

#Fonts#浏览器指纹识别#Text Metrics#Privacy#Browser Signals#Profile Consistency

让 BotBrowser 从研究走向生产

先用这些指南理解模型,再进入跨平台验证、隔离上下文和面向规模化的浏览器部署。