Web应用程序的自动登录

时间:2010-06-02 13:21:45

标签: security autologin

我们希望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对于代理后面的同一组织的所有用户都是相同的。

从安全角度来看哪一个更好?如果有更好的解决方案,请告诉我们。

2 个答案:

答案 0 :(得分:2)

唯一安全的“自动登录”是在正常登录后设置的cookie,并在用户返回站点时进行验证。 cookie应在合理的时间后过期。您的第一种方法与此类似,但您尚未解释他们的用户名和密码如何首先存储在cookie中。不是以纯文本形式存储,而是存储一系列至少包含以下内容的cookie:

  1. 他们的用户名
  2. 到期时间
  3. 以前项目的SIGNED哈希值。签名意味着哈希包含一个只有网站知道并且永远不会发给任何人的秘密。当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.

不要实现自动登录。它永远不会安全。