Browser 是否可以从移动设备获取唯一的标识号?

Browser 是否可以从移动设备获取唯一的标识号?,browser,mobile,uniqueidentifier,Browser,Mobile,Uniqueidentifier,我目前正在开发移动设备web应用程序,我想知道每个设备是否有某种可以通过浏览器检测到的唯一id号 目的是存储此号码,以便识别已访问过该站点的用户 我经常使用蓝牙,当你检测到一个设备时,你可以存储某种mac地址,我用它作为Id号,所以这是我的问题,我是否可以从浏览器中检测到一个通用的Id号 谢谢。在一些国家,当消费者通过WAP网关浏览时,运营商在http头中包含一些id。有一些聚合器带有用于消费者识别的API,通常只有当消费者也通过WAP网关浏览时它才起作用。经过进一步研究,答案是:不,现在不可能

我目前正在开发移动设备web应用程序,我想知道每个设备是否有某种可以通过浏览器检测到的唯一id号

目的是存储此号码,以便识别已访问过该站点的用户

我经常使用蓝牙,当你检测到一个设备时,你可以存储某种mac地址,我用它作为Id号,所以这是我的问题,我是否可以从浏览器中检测到一个通用的Id号


谢谢。

在一些国家,当消费者通过WAP网关浏览时,运营商在http头中包含一些id。有一些聚合器带有用于消费者识别的API,通常只有当消费者也通过WAP网关浏览时它才起作用。

经过进一步研究,答案是:不,现在不可能从浏览器中获取移动设备id号

我发现的一个解决方案是生成一个“唯一”数字(在我的例子中,我使用php,所以我使用session_id()数字与rand()函数生成的数字混合,它最终是一个非常大的数字,几乎不会出现两次…),然后将其存储在一个永不过期的cookie中

这不是一个完美的解决方案,因为如果禁用Cookie或用户清除Cookie,它将不起作用,但事实上,在使用它之后,现在证明它工作得相当好,移动设备大多启用了Cookie,并且用户似乎不经常清除它们

此外(取决于您的应用程序),如果您存储电子邮件或用户名,然后将其与此“唯一”号码关联到数据库中,您甚至可以通过再次询问某人的用户名或电子邮件来恢复某人的身份并存储新的cookie


希望这能帮助一些人

我也在做类似的事情,但对于在localstorage中存储ID并最终更新到服务器的HTML本地页面: -以毫秒为单位记录日期 -然后用随机数替换前导数字(愚蠢的希望限制数字的大小)
不知何故,我认为手机更可能准时。山姆·格林哈勒刚刚找到了一种通过“超级Cookie”设置设备ID的方法:


(断开的链接)

我知道这很旧,但我发现了这一点,并想分享我对使用GUID类型编号的OP下一个最佳功能的想法

除非您需要一个巨大的不可猜测标识符的安全性,否则服务器创建一个简单的计数器会更有意义,例如从~100开始,对于每个还没有cookie的访问者,使用max(counter)+1创建他们的新cookie

现在您有了一个非常短且100%唯一的标识符,可以为客户端和服务器存储该标识符

此外,正如您提到的,存储电子邮件地址也很有用,从理论上讲,电子邮件地址应该是唯一的——不仅如此——它是跨浏览器兼容的。i、 e他们的cookie存在于一个浏览器上-但是当进入新浏览器时,如果他们输入相同的电子邮件地址,您可以映射到他们的原始连接配置文件


尽管你提到了这一点,而且这是真的,但同样重要的是要注意,任何人输入不可靠的数据,例如。anon@anon.com可能会加载其他用户的历史记录。i、 e在您的情况下-一个全新的用户加入anon@anon.com无法查看介绍页。

这是一个老问题。希望这对将来的人有所帮助

虽然是“实验性的”,但现在有了一种获取deviceID的方法。除IE外,目前支持所有浏览器。这个解决方案似乎比什么都没有好——因为ID不可靠,我必须用一些自定义的解决方法来填补空白

MediaDeviceInfo接口的deviceId只读属性 返回一个DOMString,该字符串是表示的设备的标识符 并在会话间持久化。这是其他人无法猜测的 应用程序,并且对调用应用程序的来源是唯一的。信息技术 在用户清除Cookie时重置。对于私人浏览,请使用 所使用的不同标识符不会在会话之间持久化


如果我可以通过浏览器从一个ID识别出来,我会很讨厌。我可以到处被跟踪。因为浏览器设计师也知道这一点,我想你必须留下一块饼干。哈哈,如果你认为你的手机还不是一个让人们到处跟踪你的工具,那你就是在欺骗自己。。。在我的情况下,我不打算“跟踪”不好的目的的人,我只是希望用户不必加载介绍页等第二次。。。Cookie可以工作,但是如果它们被禁用或者设备不支持它怎么办…好的,谢谢你提供的信息,但是所有的新设备都在3g连接上运行,我想这没有帮助…这真的相关吗?我真的不明白你在说什么!我重新阅读了你的原始问题,当我在处理我的问题时,我浏览了这个问题,这个问题实际上更有限:不同设备上的单个用户。所以从你的观点来看,你可能是对的。抱歉,它背后的想法很好,但是hsts超级cookies并不是所有浏览器都支持的,所以它仍然不是一个完整的解决方案。。。尽管我觉得这些超级cookie很奇怪:)使用HST识别设备的能力是该功能的意外副作用。我不推荐它用于任何类型的生产系统。谢谢你的解决方案。如果用户在同一设备上使用不同的浏览器会怎样?
var deviceID = MediaDeviceInfo.deviceId