浏览器指纹调研
一些商业模型需要唯一的ID进行欺诈检测,在应用程序上这很有效,因为我们可以获取Android设备的Android ID和IOS设备的UUID。至于网站,没有这样的唯一ID,如果我们想在网站上获取唯一ID,这给我们带来了巨大的挑战。
流行的解决方案
目前,有两个主要的库可以为Web生成一个一致且唯一的ID,fingerprintjs和clientjs
这是npm趋势的简要比较
商业考虑
- fingerprintjs只有v3及以下的版本对商业用途免费,它声称准确率为40%-60%,付费版本从每月99美元开始,更多详情,你可以查看定价
- clientjs可以无限制地免费使用
一致性比较
测试案例 | clientjs | fingerprintjs v3 |
---|---|---|
浏览器升级 | ❌ | ✅ |
分屏 | ❌ | ❌ |
隐身模式 | ✅ | ✅ |
调整窗口大小 | ✅ | ✅ |
开发工具 - 移动视图 | ❌ | ❌ |
开发工具 - 移动视图 - 更改模型 | ❌ | ❌ |
卸载浏览器扩展 | ✅ | ✅ |
从Chrome切换到Safari | ❌ | ❌ |
新建标签 | ✅ | ✅ |
手机-桌面站点 | ❌ | ✅ |
关闭并重新打开浏览器 | ✅ | ✅ |
清除应用数据 - 没有Google账户登录 | ❌ | ❌ |
清除应用数据 - 使用Google账户登录 | ✅ | ✅ |
卸载和重新安装应用 - 没有Google账户登录 | ❌ | ❌ |
卸载和重新安装应用 - 使用Google账户登录 | ✅ | ✅ |
唯一性比较
测试案例 | clientjs | fingerprintjs v3 |
---|---|---|
不同的设备 | ✅ | ✅ |
结论
- Fingerprintjs可能会达到宣布的40%-60%的准确率
- Fingerprintjs在两个更多的测试案例
浏览器升级
和手机-桌面站点
上表现得更好,而其他案例保持不变 - 对于免费使用,如果准确率对我们来说是可以接受的,那么我们更倾向于选择fingerprintjs v3,否则,我们最好选择fingerprintjs的付费版本