什么是浏览器指纹

2024-10-05

什么是浏览器指纹

浏览器指纹(Browser Fingerprinting),是一种通过收集用户浏览器和设备特征来识别用户的技术。


网站的运营者需要识别和跟踪,到底是谁在访问网站。通常用用于以下几种场景:


通过loaclStorage/Cookie等本地存储方案,无法满足识别用户身份的需求。因为:


为了实现更精准、更泛用地识别用户的设备和浏览器信息,开发人员利用多种JavaScript/HTML API,判断用户的IP、硬件、操作系统、浏览器信息等等,用这些信息来识别具体的用户。这样,即便用户访问不同的网站、删除cookie或使用隐私浏览模式,网站仍然能够识别出他们。

每个用户的设备、浏览器配置、使用习惯可能都不尽相同,这些信息的组合往往是独一无二的,类似类似于人类的指纹。因此,这些信息的组合就被称为“浏览器指纹”。


如何采集浏览器指纹

有很多网站可以在线识别浏览器指纹,如:

如果需要在项目中使用,也可以使用开源的依赖库 fingerprintjs 。访问官方Demo https://fingerprintjs.github.io/fingerprintjs ,可以查看到当前的浏览器指纹。


通过上述方案识别浏览器指纹,我们可以看到浏览器指纹包含以下信息:


如何修改浏览器指纹

浏览器指纹技术被广泛批评,因为它通常是在用户不知情的情况下进行的,并且很难通过常规手段阻止,因此被认为侵犯了用户隐私。但是,了解到原理以后,每一个指纹信息都能通过技术手段修改和伪造。

目前行业主流的思路有两种:1、开发一个用于修改指纹的浏览器插件。2、开发一个用于修改指纹的浏览器。下面我们分别讨论一下两种技术方案的优劣。


指纹浏览器插件

优点:

缺点:


指纹浏览器

优点:

缺点:


道高一尺魔高一丈,用于生成指纹的信息也在不断增加,需要持续投入精力去更新、完善新的指纹信息修改方式。因此,目前市面上很多指纹浏览器插件和指纹浏览器都是收费的。



本文未经许可禁止转载,如需转载关注微信公众号【工程师加一】并留言。