🥳加入Scrapeless 社区申请免费试用以访问我们强大的网页抓取工具包!
返回博客

什么是字体指纹识别?

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

14-Nov-2024

字体指纹识别:在线跟踪的利弊

字体指纹识别是一种先进的在线跟踪技术,利用用户设备上安装的独特字体集。它是一种设备指纹识别,类似于 WebGL 或 Canvas 指纹识别,但它不依赖于图形渲染或网页元素,而是关注可用的字体以及浏览器如何渲染它们。网站使用此技术来收集有关设备的信息,进而收集有关用户的信息,而无需明确同意或使用传统跟踪方法(如 cookie)。

本文将探讨字体指纹识别是什么,它如何工作,它的应用以及与之相关的潜在隐私风险。我们还将讨论如何防止字体指纹泄漏以及网络爬虫如何管理字体设置以防止被检测。

字体指纹识别的工作原理

字体指纹识别利用了每个设备都具有独特安装字体组合这一事实。这些字体由操作系统和浏览器使用,在网站上渲染文本。然而,并非所有设备都安装了相同的字体。操作系统、地区偏好甚至用户偏好都会导致字体变化。网站可以通过查询浏览器并将网页上使用的字体进行比较来检测这种变化。

以下是字体指纹识别工作原理的分步说明:

  1. 字体检测: 当用户访问网站时,页面上嵌入的 JavaScript 会运行一个脚本,检查用户设备上有哪些字体可用。网站通常会创建一个隐藏元素(如 div 或 canvas)并尝试使用不同的字体渲染文本。它会通过比较文本的宽度和渲染样式来检查是否安装了特定字体。

  2. 收集数据: 脚本会检查常见字体(如 Arial、Times New Roman 或 Courier),还会检查不太常用的字体。它可能会尝试检测基于特定操作系统或区域语言设置安装的更模糊的字体。网站可能会使用这些结果来创建用户设备的配置文件。

  3. 创建指纹: 根据检测到的字体,会生成一个唯一的标识符或“指纹”。此标识符可以是持久的,用于跨多个访问和网站跟踪用户。指纹通常是多种因素的组合,例如检测到的字体以及文本的渲染方式。

  4. 跟踪用户: 创建指纹后,可以将其存储在数据库或 cookie 中,并用于随着时间的推移跟踪用户。即使用户清除 cookie 或切换浏览器,他们的字体指纹仍然可以识别,允许网站继续跟踪他们的活动。

字体指纹识别的应用

字体指纹识别具有广泛的应用,包括合法目的和潜在的侵入性活动,例如用户跟踪。以下是字体指纹识别的一些关键应用领域:

应用 描述 示例用例
广告定位 字体指纹识别帮助广告商创建更详细的用户资料,以便进行定向广告。 广告商跨不同网站跟踪用户,根据用户的字体指纹提供个性化的广告。
分析 网站所有者使用字体指纹识别分析流量并了解设备特征,从而改善用户体验。 网站所有者根据用户的设备字体指纹跟踪用户,以更好地定位和优化用户体验。
跨网站跟踪 通过收集字体数据并将其链接到持久标识符来跟踪不同网站上的用户。 数据经纪人和广告商使用字体指纹跨网站跟踪用户的活动,而不使用 cookie。
欺诈预防 通过比较设备特征并标记异常来识别可疑活动。 在线银行系统根据与恶意行为者相关的异常字体指纹检测欺诈活动。
设备分析 通过分析基于安装字体的硬件和软件设置来帮助识别用户。 公司使用字体指纹跟踪客户使用的设备,以进行定向活动或欺诈预防。
用户行为分析 通过分析设备功能和字体来了解用户行为。 网站开发人员根据用户的字体指纹跟踪用户的偏好,以更好地定制内容。

字体指纹识别技术

字体指纹识别是网站用来收集有关您设备上安装字体的信息的技巧。此过程涉及在后台执行脚本,收集有关浏览器可以显示哪些字体的數據。让我们深入了解网站使用字体指纹识别的具体方法。

1. 字体枚举

字体枚举是最简单、最常用的字体指纹识别方法之一。此技术涉及使用 JavaScript 检查用户系统上可用的字体。

它是这样工作的:

  • 当用户访问网站时,网站的代码在浏览器中运行并触发字体枚举过程。这通常通过调用访问 FontFaceSet 接口或现代浏览器中提供的类似方法的 JavaScript 函数来完成。

  • 浏览器启动后,会提供一个它可以渲染的字体列表。此信息对于创建指纹至关重要。

  • 网站会收集和处理字体数据,通常将其与其他指纹识别技术(如 canvas 指纹识别TLS 指纹识别)相结合。收集的数据类型可能包括:

    • 字体系列,如 "Helvetica"
    • 字体名称,如 "Helvetica Oblique"
    • PostScript 名称,例如 "HelveticaOblique"
    • 样式,如 "Regular"
    • 字体大小
  • 网站在收集完这些数据后,会对其进行分析以生成唯一的指纹。此指纹可以基于系统上安装的特定字体组合、它们的顺序以及有时字体渲染的细微方式。

详细了解 FontFaceSet 以了解所涉及的底层 API。

2. 字体检测

字体检测是字体指纹识别中使用的一种更高级的技术。与直接向浏览器请求安装字体列表的字体枚举不同,字体检测通过使用不同字体渲染文本来测试是否安装了特定字体。

它是这样工作的:

  • 网站通过指示浏览器使用特定字体显示一段文本,来触发字体检测。

  • 文本渲染后,网站会测量文本的大小,计算文本元素的宽度和高度。

  • 然后将渲染的文本大小与参考大小进行比较。如果大小匹配,则表明该字体已安装在用户系统上。

  • 此方法可能涉及测试各种字体或同一字体的不同版本,提供有关系统上存在的字体的宝贵数据。

字体检测通常与其他指纹识别技术结合使用,以收集有关用户系统的更全面信息。

3. Canvas-字体指纹识别

Canvas-字体指纹识别是一种更复杂的技术,也是在线跟踪用户最广泛使用的方法之一。此方法根据字体在隐藏的 HTML canvas 元素中的渲染方式生成高度唯一的标识符。

它是这样工作的:

  • 网站指示浏览器使用特定字体将文本绘制到隐藏的 canvas 元素中。这是在幕后完成的,不会影响用户看到的内容。

  • 文本渲染后,网站会从 canvas 中提取像素数据,该数据表示文本在屏幕上的显示方式。

  • 然后使用 SHA-256 等算法对像素数据进行哈希处理,生成该字体渲染的唯一指纹。

  • 此指纹用于跨不同会话和网站跟踪和识别用户。生成的哈希值用作持久标识符,即使用户清除 cookie 也是如此。

用于渲染的文本通常包括字母表中的所有字母,称为 pangram。例如,句子 "Cwm fjordbank glyphs vext quiz" 包含字母表中的每个字母。但是,确切的文本可能因网站的脚本而异。

探索 canvas 指纹识别的工作原理 以了解其在跟踪中的广泛使用和影响。

Canvas-字体指纹识别特别有效,因为渲染行为会根据用户的操作系统、浏览器和图形硬件等因素而异,使其极难阻止或欺骗。

字体指纹识别方法概述

技术 描述 目的
字体枚举 使用 JavaScript 直接查询浏览器以获取安装的字体列表。 收集用户设备上可用的唯一字体集。
字体检测 渲染使用特定字体的文本,并测量渲染文本的大小以检查该字体是否已安装。 通过测试字体如何渲染文本来间接检测字体。
Canvas-字体指纹识别 使用隐藏的 canvas 元素渲染文本,并将像素数据哈希到唯一的标识符中。 根据字体渲染生成高度唯一的指纹。

字体指纹识别的安全风险

字体指纹识别引发了重大的隐私和安全问题。一些风险包括:

  1. 持久跟踪: 与 cookie 不同,字体指纹不易删除。生成指纹后,即使用户清除 cookie 或使用隐身模式,也可以将其用于跨多个会话和网站跟踪用户。这使得用户难以在网上保持匿名。

  2. 跨网站跟踪: 由于字体指纹识别跨不同网站有效,因此可以创建更详细和全面的用户资料。数据经纪人和广告商可以将字体指纹识别与其他跟踪方法相结合,以跨多个域监控用户的在线活动。

  3. 设备分析: 字体指纹可以揭示有关用户设备的特定信息,包括操作系统、语言设置和安装的字体。此信息可用于针对用户进行定向广告,并可能用于恶意目的,例如网络钓鱼或定向网络攻击。

  4. 规避隐私工具: 字体指纹识别可以绕过 VPN、cookie 阻止程序和隐身模式等隐私工具,因为它依赖于不受这些工具影响的设备特定数据。即使用户采取措施保护隐私,字体指纹识别仍然可以跟踪他们。

  5. 合规问题: 在拥有严格隐私法规的地区(例如欧盟的 GDPR),字体指纹识别可能会违反用户同意要求。用户可能不知道他们的设备正在被指纹识别,这使得组织难以遵守数据保护法。

如何防止字体指纹泄漏

以下是一些减轻字体指纹识别风险的方法:

1. 禁用或随机化字体

某些浏览器允许用户禁用某些字体指纹识别脚本或随机化网站可以访问的字体。这降低了创建唯一字体指纹的可能性。

2. 使用注重隐私的浏览器

TorBrave 等浏览器提供了隐私功能,可以帮助阻止或随机化字体指纹识别尝试。这些浏览器通常会阻止第三方跟踪脚本,包括字体指纹识别,确保用户保持匿名。

3. 使用浏览器扩展

有一些扩展程序可以帮助阻止或欺骗字体指纹识别尝试。Privacy BadgerCanvasBlocker 等扩展程序可以阻止脚本检测字体详细信息,并有助于减轻跟踪。

4. 字体指纹欺骗

与其他类型的指纹识别一样,欺骗或随机化字体指纹可能是保护隐私的有效方法。某些浏览器扩展程序或隐私工具提供字体欺骗功能,使网站更难以检测您的设备上安装了哪些字体。

5. 在网络抓取中监控和管理字体设置

对于网络爬虫,管理字体设置对于避免被检测至关重要。许多网站使用字体指纹识别来检测机器人,因此抓取工具应配置浏览器来随机化或模仿真实用户设置。Scrapeless 等工具提供无头浏览器技术,可以自动调整浏览器设置(包括字体),以确保抓取过程不被检测到。

结论

字体指纹识别是一种强大的技术,通过利用用户设备上安装的独特字体来跟踪用户的在线活动。虽然它可以用于合法目的,例如广告定位和分析,但它也引发了重大的隐私问题。用户可以通过使用注重隐私的浏览器、欺骗字体指纹以及使用 Scrapeless 等工具来管理浏览器设置来减轻字体指纹识别的风险。

随着隐私问题的不断增加,用户和开发人员必须了解与字体指纹识别相关的风险,并采取主动措施来保护他们的在线身份。

在Scrapeless,我们仅访问公开数据,同时严格遵守适用的法律、法规和网站隐私政策。 本博客内容仅用于演示目的,不涉及任何非法或侵权行为。 对于使用本博客或第三方链接的信息,我们不做任何保证,也不承担任何责任。 在参与任何抓取活动之前,请咨询您的法律顾问并查看目标网站的服务条款或获取必要的权限。

最受欢迎的文章

目录