我一直在互联网上寻找合适的解决方案,但我找不到好的答案。当然,我知道由于浏览器的Sandbox,我在这里提出的问题是不可能的,但也许这里的专家可以点亮一些好东西!
我有一个Web应用程序,其中用户已注册并需要登录才能访问它。但是,我希望每个用户只能使用几个设备(例如3个),因此,如果检测到新设备(第4个设备),它应该向用户显示一条消息,告诉他升级到专业版或取消链接他的某个设备等。
所以,我想要的是拥有一个难以改变的用户设备的独特指纹(这不是不可能,但不像更改浏览器那么容易)。
在互联网上,我遇到了一些解决方案,这些解决方案从用户的屏幕,浏览器版本,SO和浏览器的插件中获取信息,混合这些信息并制作独特的md5哈希。当用户更改浏览器时出现问题。
浏览器的插件和浏览器本身会发生变化,因此最独特的指纹(插件)之一将被淘汰,并将被识别为新设备。例如,如果用户在浏览器中安装新插件,则相同。所以:他们不可能。
也不能考虑IP,因为我无法保证客户端将始终从同一位置访问该应用程序。
谈到让用户访问我的应用程序,我不能将我的身份识别基于可以轻易改变的东西。
我想过使用localStorage。如果用户在localStorage中没有ID,则它是新设备。但是,每当浏览器开始变慢时,每个人都建议"清理"网站数据,所以localStorage将再次消失。所以,不是解决方案。
使用cookies与localStorage存在同样的问题,因此不是解决方案。
使用计算机的某些参数(如屏幕颜色的深度)会很好,但是将它与其他参数混合会更好。
主要问题是,我不知道可以采取哪些参数(Javascript或PHP,或两者兼而有之),以及#34;不可更改"由用户自己或非常难以这样做。
我知道我要求的内容是复杂的,而且是“utopic"”,但我不是专家,可能有人为此考虑了合适的解决方案。
感谢大家的时间和答案!
编辑:好吧,我认为重复的答案完全回答了这个问题。这不是我喜欢的,但似乎(总结)唯一的解决方案是采取一组变量并使概率匹配能够& #34;知"现在连接了哪个用户设备。感谢大家的回答(以及那些指出重复问题的人!)。