我目前正在开发移动设备的Web应用程序,不知道是否有一种通过浏览器可以检测到每个设备的唯一ID号码。
这样做的目的是为了存储此编号以识别已经访问过该网站的人。
我之前处理了很多蓝牙相关的工作,当你检测到一个设备时,有一种可以存储MAC地址的方法,我将其用作ID号码。所以我的问题是,是否可以从浏览器中检测到通用的ID号码…?
谢谢。
我目前正在开发移动设备的Web应用程序,不知道是否有一种通过浏览器可以检测到每个设备的唯一ID号码。
这样做的目的是为了存储此编号以识别已经访问过该网站的人。
我之前处理了很多蓝牙相关的工作,当你检测到一个设备时,有一种可以存储MAC地址的方法,我将其用作ID号码。所以我的问题是,是否可以从浏览器中检测到通用的ID号码…?
谢谢。
Sam Greenhalgh刚刚发现了一种通过“超级Cookie”设置设备ID的方法:
这是一个旧问题。希望能对未来的某个人有所帮助。
虽然"Experimental",但MDN Web Docs现在有一种可以获取设备ID的方法。目前所有浏览器都支持,除了IE。这个解决方案似乎比没有好-因为ID不可靠,我不得不用一些自定义的解决方法来填补空缺。
MediaDeviceInfo接口的deviceId只读属性返回一个DOMString,它是所代表设备的标识符,并在会话之间保留。它无法被其他应用程序猜测,并且对调用应用程序的来源唯一。当用户清除cookies时,它会重置。对于私密浏览,使用不会在会话之间保留的不同标识符。
var deviceID = MediaDeviceInfo.deviceId
我知道这个问题很旧了,但我找到了它,并想分享一下我的想法,关于使用GUID类型数字的最佳替代方案。
除非你需要一个非常安全的、不可猜测的巨大标识符,否则对于服务器来说,创建一个简单的计数器更有意义——例如从100开始,对于每个没有你的cookie的访问者,使用max(counter)+1来创建他们的新cookie。
现在,你有了一个非常短且100%唯一的标识符,可以为客户端和服务器存储。
此外,正如你提到的存储电子邮件地址也很有用,理论上电子邮件地址应该是唯一的——不仅如此——它还跨浏览器兼容。即他们的cookie存在于一个浏览器中——但当他们转到一个新的浏览器时,如果他们输入相同的电子邮件地址,你可以映射到他们的原始连接配置文件。
虽然你提到了这一点,这是真的,但重要的是要注意,任何输入虚假数据的人,例如anon@anon.com,很可能会被加载另一个用户的历史记录。例如,在你的情况下,一个全新的用户输入anon@anon.com将无法看到介绍页面。