记录一个使用 Fingerprintjs 生成指纹的问题

2024-10-08 · 周二一般晴

公司有两个不同的网站分别使用了 Fingerprintjs 来获取用户指纹用于标记唯一的用户标识符,但它们获取的结果不一致。关于这个问题其他同事的经验初步推测是生成因子差异导致,参考 文档 排除了部分生成因子,但指纹 ID 结果依旧不同。

将所有的生成因子打印出来对比,发现这两个网站的结果总体一致,但总数不同。

const fp = await FingerprintJS.load();
const result = await fp.get();

for (const [key, value] of Object.entries(result.components)) {
  console.log(`${key}:`, value);
}

这其实是 Fingerprintjs 的版本不一致所致,将依赖更新为同一版本后就正常了。分析完生成因子之后也能发现,其本身并没有依赖于某个网站下的数据,只是依靠检测各项浏览器 API 的可用性和设备参数(CPU 核心、内存、音视频设备名称等)来实现的。

Paul

Paul

特立独行的一只前端菜狗。这篇日记编写大概耗时了 8 分钟,内容均为个人原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?

奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君