技术解析

现在在浏览器上编写 js 代码能获得设备信息唯一码吗?
0
2021-08-24 00:38:54
idczone

如题,做 web 应用,要获得手机或电脑的信息唯一码。用来鉴别用户。浏览器由于安全权限问题,连客户端本地文件读写都不行,那有没有办法获得设备唯一信息码?或者是哪些浏览器可以?


现在用 js 可以啊

可以吗? 怎么写?

所有浏览器都可以吗

https://github.com/Valve/fingerprintjs2

fingerprint.js 可以试试,但还是存在同一批机型,id 重复问题,不可避免的。服务器端配合下发 cookie 可以解决问题

电脑换个浏览器就不行了吧

用户 ID 不好用吗...

浏览器指纹?

做比较简单的 web 应用,需求上光用户 id 不行,至少还得鉴别用户的设备,至少手机设备唯一信息必须能被确认。如果用手机原生语言开发,倒是容易获取。但成本有点高了。还得学 android 和 ios

这个换个浏览器会不会不一样了?

只能获得浏览器的唯一码,换个浏览器就变了

fingerprint 没用,这只是浏览器指纹,跟机器无关。
用浏览器目前是无法获取唯一识别码的,浏览器没开放这个接口给你。
APP 或者桌面软件才行,这要直接获取硬件信息,生成唯一码。目前大部分软件公司也是用这个办法收费的。

我看完全是想多了,浏览器在沙箱里获取硬件信息难,用本地存储的话还有隐身模式的存在
最佳方案:让客户端装 native 插件

https://audiofingerprint.openwpm.com/
用 Audio API 获取设备指纹,与浏览器无关

那问一下,同一个浏览器的唯一码,卸载重装后,获得的还是一样的吗

web 的基本要求就是不能和设备用户强相关联,就算你能找到也算漏洞估计下一版本就堵上了,通用场景下用 cookie 追踪用户就已经比较高风险了

https://juejin.im/post/5dc8f8d8f265da4d0c175abe 看看这个,基本上是可以做的,不能保证 100%

这个我试过, 用 js 无法获取获取设备信息唯一码 (指纹), 是因为隐私原因浏览器不会开放这个接口的, 可以生成浏览器的唯一码,卸载重装后获得的唯一码 (指纹)会改变

大部分时候追求用户的唯一 ID 也就那么几个目的

用 JS 调用 java 就行

工信部刚刚敦促国内互联网公司不允许获取手机 imei,否则要等着挨批

原生都难获取设备 ID,还想 js 获取,太天真了

fingerprint 我项目中实践过,可以负责任的告诉你非常不靠谱,
首先是你得要求用户不能动浏览器版本,不能乱装莫名其妙的插件和安全软件(或者流氓软件)
其次,如果是内部使用,因为配置都差不多,碰撞概率撞到你怀疑人生
fingerprint.js 和 fingerprint2.js 我都用过,自己手写的也试过,都有各种缺点
如果要作为准确的识别码纯前端实现几乎不可能,
除非你去写 electron 一类的可以获取 mac 一类的

其实多少有点关系,图像渲染质量和硬件相关,更换硬件有概率影响最后生成的结果,但是影响不直观就是了

精确到设备的做不到,换个浏览器都会有差别。浏览器指纹现成的轮子和商业级产品很多,直接用就行。

别想了,能得到机器唯一 ID 那就是天大的隐私 BUG,马上就会被修复还等你来用?

硬件到图像渲染中间还差了一个软件呢,它如何调用处理都是它说了算。

不可能唯一,只能降低碰撞概率

这里的软件指的就是浏览器啊,指纹原理就是看浏览器处理能力再混入一些其他参数,

这不废话吗,我第一句就是说这是浏览器指纹

正解

这个只能区别浏览器,设备不行的

建议放弃治疗,因为浏览器厂商和网页标准一直避免出现这种事,所以要真唯一,老老实实让用户注册好了。

https://github.com/WICG/ua-client-hints/blob/master/README.md
以后估计 UserAgent 都不太好获取了,我用的 Chrome 80 貌似已经在逐步实施了。
默认只能得到浏览器主版本号了,虽说服务端下发个头可以获取更多信息,但是我觉得未来浏览器应该可以配置不返回更多信息的……

傻逼需求

傻逼需求

想太多

渲染指纹的话但凡一点抖动都会变的,因为最后是对渲染结果图片算 Hash,带雪崩。

我反而不是很明白这一功能的使用场景
是同设备换浏览器无需重复登录吗?首先一直换浏览器的人本来就少,换浏览器的人常常是在放弃登录状态(比如测试无登录时的效果)
如果要防泛洪,那你不知道现在的泛洪都是可以做真设备的,养一堆真设备。
如果你要对某个污染源进行屏蔽,封 IP 或者 IP 段比较稳。

这些狗日的一天到晚都在想追踪用户

像我这种用了各种 id 指纹随机化想必也不是贵司欢迎的用户,LZ 不妨透露一下贵司或贵产品名字以供避雷?

这种实际上挺常见的,不一定是为了追踪用户,例如风控里面防止用户注册多账号褥羊毛,但是确实很大可能都
会被大数据拿去用做唯一 ID

我就明确告诉你:不能

被你稍微猜到了一点

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服