在前端方面有哪些识别唯一设备或用户的方法(设备指纹跟踪)

根据你的需求,提供一个开源库:github上有一个专门用于生成设备指纹的js库,叫FingerPrintJs2(GitHub - Valve/fingerprintjs2: Modern \u0026amp; flexible browser fingerprinting library, a successor to the original fingerprintjs ,英语吃力的同学可以看这篇翻译:Fingerprintjs2:指纹采集器一款开源的程序_CN龙凯),它的原理是根据所能获取到的设备相关信息:比如系统字体、ua、帆布指纹等数据,筛选计算出一个(94%情况下)近似唯一的24位哈希值,可以作为设备的唯一性标识。它的特点是不依赖cookie,用户无法通过清除缓存来删除。设备指纹现在被很多互联网反欺诈公司拿来作为用户特征识别的方法,也被一些广告公司用来跟踪用户数据。我们项目中是想把它作为唯一用户的标识,免去用户需要登录的麻烦,目前还没有能100%定位的方法,欢迎大家一起讨论哈~顺便分享一篇发表在乌云上的关于设备指纹原理的文章:设备指纹简析
■网友
据我所知,为了安全着想,浏览器环境是一个自我封闭的环境(沙盒),前端页面脚本运行在这个沙盒里是没有权限调用除浏览器暴露的资源外的其他任何资源的。所以获取设备唯一标识恐怕是不能实现的。顶多通过UA来判断一下是什么类型的设备。
■网友
执行搜索帆布指纹相关。虽然不是太靠谱 但也算是一种办法
■网友
以前可能不行, 不过现在浏览器自带这个功能了。用到的是service worker 中的push API。Push API的作用就是根据用户的唯一表示进行主动消息推送的。具体用法: PushManager.getSubscription()就像文档中所说,他最后会返回一个 PushSubscription 对象这个对象中的endpoint 就是浏览器Push 服务器来寻找客户端的依据,可以直接拿来当设备唯一标识符了。有个小小的问题: 你webapp必须具有通知权限。另外一个比较大的问题: Can I useWebkit 和 EdgeHTML 在想什么?
■网友
【在前端方面有哪些识别唯一设备或用户的方法(设备指纹跟踪)】 XFRAUD设备指纹,跨浏览器

■网友
腾讯灯塔系统。


    推荐阅读