我们希望AutoLogin功能允许用户使用链接直接登录我们的Web应用程序。实现这一目标的最佳方式是什么?
我们在脑海中有以下方法。
1)在cookie中存储用户凭据(用户名/密码)。发送cookie进行身份验证。
e.g。 http://www.mysite.com/AutoLogin(此处用户名/密码将在cookie中传递)
或在链接网址中传递用户凭据。
http://www.mysite.com/AutoLogin?userid=<>&password=<>
2)生成randon令牌并在服务器端数据库上存储用户随机令牌和用户IP。
当用户使用链接登录时,验证服务器上的令牌和用户IP。
e.g。
http://www.mysite.com/AutoLogin?token=<>
第一种方法的问题是,如果黑客将链接/ cookie从用户机器复制到他可以登录的另一台机器上。
第二种方法的问题是用户ip对于代理后面的同一组织的所有用户都是相同的。
从安全角度来看哪一个更好?如果有更好的解决方案,请告诉我们。
答案 0 :(得分:2)
唯一安全的“自动登录”是在正常登录后设置的cookie,并在用户返回站点时进行验证。 cookie应在合理的时间后过期。您的第一种方法与此类似,但您尚未解释他们的用户名和密码如何首先存储在cookie中。不是以纯文本形式存储,而是存储一系列至少包含以下内容的cookie:
答案 1 :(得分:0)
Which one is better from above from security perspective?
两者都很糟糕,但在明文中存储密码是一种罪过。请不要考虑它。
If there is better solution which is other than mentioned above, please let us know.
不要实现自动登录。它永远不会安全。