引言
不知道大家有没有遇到这种场景,我无痕方式访问某个网站,该网站依然能够精准对我进行个性化推荐?这是为什么呢?接下来,本文将介绍浏览器指纹
有关知识点
什么是浏览器指纹?
浏览器指纹是一种用于识别用户设备的浏览器的唯一标识符。它通过收集设备和浏览器的各种信息,如用户代理、屏幕分辨率、字体、插件列表等,以创建一个唯一的标识符。浏览器指纹可用于多种用途,包括用户身份验证、设备追踪和数据分析。
fingerprint
我们打开
fingerprint
网站,可以看到在正常和无痕模式下,指纹都是唯一的
<script> // Initialize the agent at application startup. const fpPromise = import('https://openfpcdn.io/fingerprintjs/v4') .then(FingerprintJS => FingerprintJS.load()) // Get the visitor identifier when you need it. fpPromise .then(fp => fp.get()) .then(result => { // This is the visitor identifier: const visitorId = result.visitorId console.log(visitorId) }) .catch(error => console.error(error)) </script>
浏览器指纹的工作原理
- 信息收集:浏览器指纹技术通过收集用户设备和浏览器的各种信息来创建唯一标识。这些信息可以包括用户代理字符串、屏幕分辨率、操作系统、字体列表、插件列表、硬件配置等等。
- 信息组合:收集到的信息会经过一定的处理和筛选,以便生成稳定的浏览器指纹。通常,某些信息会被排除,而其他信息会被加入到最终的指纹中。
- 信息哈希化:一旦收集到足够的信息并形成了浏览器指纹的基础数据,这些数据将被组合在一起,并经过哈希函数的处理,生成一个唯一的哈希值。这个哈希值就是用户的浏览器指纹。
- 指纹存储:生成的浏览器指纹通常会被存储在用户设备上,通常是在浏览器的本地存储(如localStorage)中。这样,网站可以在用户下次访问时检查指纹,以进行身份验证或个性化推荐等操作。
- 指纹比对:当用户再次访问网站时,网站会请求并获取浏览器指纹信息,然后将其与之前存储的指纹进行比对。如果两个指纹匹配,网站就可以确认这是同一用户。