视频版链接:
浏览器指纹是什么?14种指纹背后的技术原理
浏览器指纹简介
这个网站在我没登录的情况下,就能生成一个用户ID。即使我打开了浏览器的无痕模式,生成出来的ID也是一模一样。这背后的技术就是浏览器指纹。即使用户没有登录,甚至开启了无痕模式,网站通过浏览器指纹,依然能够准确的知道用户身份。
本期视频,我们来看一下什么是浏览器指纹,为什么网站要搜集浏览器指纹,以及这背后的技术实现原理。
浏览器指纹的组成元素
每当我们访问一些网站的时候,这些网站都会悄悄收集着关于浏览器的相关各种细节,比如IP地址、USER AGENT、用户时区、浏览器插件,甚至你电脑上安装的字体。这些看似无关紧要的信息,当汇聚到一起时,就形成了一个浏览器指纹。这个指纹在大多数情况下都是独一无二的,就像现实生活中的指纹一样,它能让网站识别出一个个独立的访客。
即使清除了cookie或者使用了隐私模式,网站也能使用技术手段收集到用户浏览器指纹,精准的识别访客。无痕模式仅仅是清空了cookie,并且不保存cookie,但是并不能阻止网站追踪用户。
Fingerprintjs项目介绍
GitHub - fingerprintjs/fingerprintjs: The most advanced browser fingerprinting library.
fingerprintjs,这是github上面的一个开源项目,可以看到这个仓库有2万多的star数量。这个项目包含了大部分浏览器指纹的相关技术,并且有完整的源代码实现。
我们往下找,找到这里的Demo,点击这个链接,就可以进入视频开头的那个演示网站。这里显示出根据浏览器指纹计算出来的访客ID。除了ID以外,下面还有一系列计算访客ID所需要的特征值。
视频的后半段,我会讲一下这些特征值都是什么,以及背后的实现原理。
网站收集浏览器指纹的目的
浏览器指纹一般会用于广告。我们浏览一些没登录的网站的时候,广告联盟的广告推送服务都会默默地收集这些浏览器指纹,并且与你正在浏览的网页进行一个绑定。这样广告商就能更精准地识别你喜欢什么样的东西,方便广告商更精准地推送广告。
第二个用法是网站防刷。电商网站和社交平台都希望自己的用户是真实的,他们通常不愿意看到一个人掌握着大量的用户。通过浏览器指纹,网站就可以识别出哪些账号是同一个人操作的,从而设置相应的安全政策,保护网站防止被爬虫,防止被刷数据。
IP地址的作用
每个接入互联网中的设备,都需要一个唯一的地址来进行通讯,这个地址称为IP地址。网站可以通过解析网络层的数据报文,就可以得知源IP地址,也就是用户测的IP地址。网站获取到的IP地址,一般是用户的公网IP地址。
爬爬虾之前有一个完整视频,介绍了什么是公网I