我想做一个与其他用户交互的网络应用程序,但我不希望用户使用登录名和密码进行注册(例如 BrowserQuest )。
然后,我想到使用一个带有存储在本地存储中的随机数的变量。但我认为这是不安全的,因为如果有人分析我的代码,并查看名称存储在哪个变量中,然后写入 URL:
javascript:localStorage["variableWhereNameIsStored"]="nameOfSomeoneElse";void(0);
他可以窃取他的帐户。
然后我想到了每台 iPhone/iPod/iPad 的唯一 ID。但在 javascript 中,我们无法访问它:Get iphone ID in web app 。也有IP,但不可靠。还有cookie,但这里用户也可以使用注入(inject)。
在我的网络应用程序中识别用户的最佳方式是什么?
最佳答案
一种解决方案是为每个人提供一个只有他们自己知道的唯一 session ID(可能以 Cookie 形式)。这会将它们连接到后端的用户 ID。
另一个解决方案是将 cookie 中的用户 ID 设置为签名 cookie。同样,这取决于您的后端,但您可以在这里看到 python 解决方案:http://webpython.codepoint.net/mod_python_publisher_cookies_signed .
关于javascript - 在网络应用程序中识别用户的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10963857/