如题,做 web 应用,要获得手机或电脑的信息唯一码。用来鉴别用户。浏览器由于安全权限问题,连客户端本地文件读写都不行,那有没有办法获得设备唯一信息码?或者是哪些浏览器可以?
1
MaxJin 2019-11-22 09:14:14 +08:00
现在用 js 可以啊
|
4
journey0ad 2019-11-22 09:17:25 +08:00 via Android
|
5
Xuebaba 2019-11-22 09:18:26 +08:00 via iPhone
fingerprint.js 可以试试,但还是存在同一批机型,id 重复问题,不可避免的。服务器端配合下发 cookie 可以解决问题
|
6
ryougifujino 2019-11-22 09:20:00 +08:00
@Xuebaba #5 电脑换个浏览器就不行了吧
|
7
dreamerlv3ex 2019-11-22 09:22:18 +08:00
用户 ID 不好用吗...
|
8
ming61177 2019-11-22 09:26:53 +08:00
浏览器指纹?
|
9
tctc4869 OP @dreamerlv3ex 做比较简单的 web 应用,需求上光用户 id 不行,至少还得鉴别用户的设备,至少手机设备唯一信息必须能被确认。如果用手机原生语言开发,倒是容易获取。但成本有点高了。还得学 android 和 ios
|
11
weikexin 2019-11-22 09:38:08 +08:00
只能获得浏览器的唯一码,换个浏览器就变了
|
12
fancy111 2019-11-22 09:38:35 +08:00
fingerprint 没用,这只是浏览器指纹,跟机器无关。
用浏览器目前是无法获取唯一识别码的,浏览器没开放这个接口给你。 APP 或者桌面软件才行,这要直接获取硬件信息,生成唯一码。目前大部分软件公司也是用这个办法收费的。 |
13
shilyx 2019-11-22 09:42:44 +08:00
我看完全是想多了,浏览器在沙箱里获取硬件信息难,用本地存储的话还有隐身模式的存在
最佳方案:让客户端装 native 插件 |
14
AaronLiu00 2019-11-22 09:45:38 +08:00 via Android 1
https://audiofingerprint.openwpm.com/
用 Audio API 获取设备指纹,与浏览器无关 |
16
sujin190 2019-11-22 09:53:36 +08:00 2
web 的基本要求就是不能和设备用户强相关联,就算你能找到也算漏洞估计下一版本就堵上了,通用场景下用 cookie 追踪用户就已经比较高风险了
|
17
gitjavascript 2019-11-22 10:06:09 +08:00
https://juejin.im/post/5dc8f8d8f265da4d0c175abe 看看这个,基本上是可以做的,不能保证 100%
|
18
flighter 2019-11-22 10:14:46 +08:00
这个我试过, 用 js 无法获取获取设备信息唯一码 (指纹), 是因为隐私原因浏览器不会开放这个接口的, 可以生成浏览器的唯一码,卸载重装后获得的唯一码 (指纹)会改变
|
19
momocraft 2019-11-22 10:15:14 +08:00 1
大部分时候追求用户的唯一 ID 也就那么几个目的
|
20
hkitdog 2019-11-22 10:17:13 +08:00 via iPhone
用 JS 调用 java 就行
|
21
jin5354 2019-11-22 10:28:47 +08:00 2
工信部刚刚敦促国内互联网公司不允许获取手机 imei,否则要等着挨批
|
22
whypool 2019-11-22 10:41:21 +08:00 1
原生都难获取设备 ID,还想 js 获取,太天真了
|
23
TomatoYuyuko 2019-11-22 10:49:30 +08:00
fingerprint 我项目中实践过,可以负责任的告诉你非常不靠谱,
首先是你得要求用户不能动浏览器版本,不能乱装莫名其妙的插件和安全软件(或者流氓软件) 其次,如果是内部使用,因为配置都差不多,碰撞概率撞到你怀疑人生 fingerprint.js 和 fingerprint2.js 我都用过,自己手写的也试过,都有各种缺点 如果要作为准确的识别码纯前端实现几乎不可能, 除非你去写 electron 一类的可以获取 mac 一类的 |
24
TomatoYuyuko 2019-11-22 10:51:01 +08:00
@fancy111 #12 其实多少有点关系,图像渲染质量和硬件相关,更换硬件有概率影响最后生成的结果,但是影响不直观就是了
|
25
locoz 2019-11-22 11:02:32 +08:00
精确到设备的做不到,换个浏览器都会有差别。浏览器指纹现成的轮子和商业级产品很多,直接用就行。
|
26
love 2019-11-22 11:12:52 +08:00
别想了,能得到机器唯一 ID 那就是天大的隐私 BUG,马上就会被修复还等你来用?
|
27
fancy111 2019-11-22 11:20:44 +08:00
@TomatoYuyuko 硬件到图像渲染中间还差了一个软件呢,它如何调用处理都是它说了算。
|
28
janxin 2019-11-22 11:23:01 +08:00
不可能唯一,只能降低碰撞概率
|
29
TomatoYuyuko 2019-11-22 11:29:44 +08:00
@fancy111 #27 这里的软件指的就是浏览器啊,指纹原理就是看浏览器处理能力再混入一些其他参数,
|
30
fancy111 2019-11-22 11:37:56 +08:00
@TomatoYuyuko 这不废话吗,我第一句就是说这是浏览器指纹
|
33
muzuiget 2019-11-22 11:54:31 +08:00
建议放弃治疗,因为浏览器厂商和网页标准一直避免出现这种事,所以要真唯一,老老实实让用户注册好了。
|
34
jinliming2 2019-11-22 12:42:36 +08:00
https://github.com/WICG/ua-client-hints/blob/master/README.md
以后估计 UserAgent 都不太好获取了,我用的 Chrome 80 貌似已经在逐步实施了。 默认只能得到浏览器主版本号了,虽说服务端下发个头可以获取更多信息,但是我觉得未来浏览器应该可以配置不返回更多信息的…… |
35
reus 2019-11-22 13:36:03 +08:00
傻逼需求
|
36
uxstone 2019-11-22 13:40:55 +08:00
傻逼需求
|
37
back0893 2019-11-22 14:36:36 +08:00
想太多
|
38
no1xsyzy 2019-11-22 14:54:16 +08:00
@TomatoYuyuko 渲染指纹的话但凡一点抖动都会变的,因为最后是对渲染结果图片算 Hash,带雪崩。
|
39
no1xsyzy 2019-11-22 15:00:15 +08:00
我反而不是很明白这一功能的使用场景
是同设备换浏览器无需重复登录吗?首先一直换浏览器的人本来就少,换浏览器的人常常是在放弃登录状态(比如测试无登录时的效果) 如果要防泛洪,那你不知道现在的泛洪都是可以做真设备的,养一堆真设备。 如果你要对某个污染源进行屏蔽,封 IP 或者 IP 段比较稳。 |
40
fuchunliu 2019-11-22 18:56:18 +08:00 via Android
这些狗日的一天到晚都在想追踪用户
|
41
Jirajine 2019-11-22 19:01:58 +08:00 via Android
像我这种用了各种 id 指纹随机化想必也不是贵司欢迎的用户,LZ 不妨透露一下贵司或贵产品名字以供避雷?
|
42
conn4575 2019-11-23 09:38:58 +08:00 via Android
这种实际上挺常见的,不一定是为了追踪用户,例如风控里面防止用户注册多账号褥羊毛,但是确实很大可能都
会被大数据拿去用做唯一 ID |
43
myqoo 2019-11-23 11:48:57 +08:00
我就明确告诉你:不能
|