Client Rects指纹
Client Rects是一种浏览器的API,它提供了网页元素的布局信息,包括元素的位置和大小。这种信息被称为“矩形”(rects)。
Client Rects之所以能成为一种浏览器指纹跟踪技术,是因为即使两台设备打开的是同一网页,由于它们的硬件配置、操作系统、浏览器类型和版本、屏幕分辨率、字体设置等因素的差异,渲染出的网页元素的布局信息可能会有所不同。这些差异可以被用来生成一个独特的标识符,也就是浏览器指纹。
例如,一台设备的显示器可能会将一个元素显示得比另一台设备的显示器更大或更小,或者在屏幕上的位置不同。这种差异可以通过Client Rects API来捕捉。
以下是一个简化的示例,说明网站如何使用Client Rects获取浏览器指纹:
步骤1:选择或生成元素
网站首先需要选择或生成一个元素,例如一个文本框或按钮。这个元素可以是页面上已经存在的元素,也可以是网站动态生成的元素。
步骤2:获取元素的Client Rects
然后,网站会使用JavaScript获取这个元素的Client Rects。获取之后会返回一些信息,其中包含了元素的位置和大小信息,如顶部、底部、左侧、右侧、宽度和高度等。
步骤3:记录或处理Client Rects
接下来,网站会记录这个元素的Client Rects,或者对这些信息进行处理。例如,网站可能会计算元素的面积(宽度乘以高度),或者比较元素的位置和其他元素的位置。
步骤4:生成浏览器指纹
最后,网站会将这些信息结合其他信息(例如用户的IP地址,浏览器的用户代理字符串等),生成一个独特的浏览器指纹。这个指纹可以用来识别和跟踪用户。
这只是一个基本的示例,实际的过程可能会更复杂。例如,网站可能会获取多个元素的Client Rects,或者对这些信息进行复杂的统计和分析。但无论如何,核心的思路都是利用Client Rects中不同设备间的微小差异,生成一个独特的浏览器指纹。
总之,Client Rects就像是网站的"尺子"和"记事本",可以帮助它们识别和记住您。但这并不意味着网站就能知道您是谁,或者您在做什么。它们只是记录了您的浏览器如何显示网页,以及您的设备的一些基本信息。网站需要将其他指纹信息结合在一起,提高指纹的准确度。
字体指纹
字体可以成为浏览器指纹的一部分。当您的设备安装了特定的字体,或者没有安装某些字体,这些信息可以被用来生成您设备的唯一指纹。这是因为每个人的设备上安装的字体组合可能是独特的,特别是对于安装了大量非标准字体的用户来说。因此,字体可以帮助形成一个相当独特和详细的浏览器指纹。
字体指纹主要是通过浏览器的JavaScript API来实现的。这种技术的主要原理是,浏览器可以获取并报告用户设备上可用的字体列表。这些字体列表,结合其他浏览器和设备的信息,可以形成一个相当独特的浏览器指纹。
以下是一些常用的字体指纹技术:
-
字体枚举:这是最直接的方法,就像查看您的设备上安装了哪些应用一样,网站可以查看您的设备上安装了哪些字体。这是通过浏览器提供的一种功能来实现的,它会返回一个包含了所有已安装字体的列表。
-
字体检测:这是一种更微妙的方法。网站可以让浏览器显示一段使用特定字体的文本,然后测量这段文本的大小。如果这个字体已经安装,那么这段文本的大小会有所变化,通过这种方式,网站就可以知道这个字体是否已经安装。这就像是一个试错的过程,网站尝试使用一个字体,然后看看浏览器的反应。
-
画布指纹:这是一种更复杂的方法。网站可以在一个虚拟的画布上绘制一段文本,然后看看这段文本的像素是如何排列的。由于不同的字体会导致像素的排列方式不同,所以网站可以通过比较这段文本的像素排列来判断您的设备上是否安装了这个字体。这就像是在一个黑板上写下一段文字,然后通过研究这段文字的笔迹来判断您使用的是什么笔。
总之,这两种指纹可能容易被大家忽略,所以BrowserScan在这里为大家统一解释。在BrowserScan里,您也可以检测这两种指纹。如果您要阻止Client Rects指纹或者字体指纹的跟踪,指纹浏览器或许是最优的选择之一。
如果您想了解更多的浏览器指纹知识,可以阅读我们为您准备的指纹系列文章: