1

我有一个登录表单,上面有一个“让我登录”选项。如果用户选中此选项并按下登录按钮。然后我想我可以将用户名和密码保存在 cookie 中并将其发送到用户计算机。然后当用户再次打开站点时,我可以检查该 cookie 是否存在于用户计算机中,如果存在则从 cookie 中获取用户名和密码并登录用户。但问题是如何将 cookie 发送到用户计算机?我所知道的。你可以这样设置cookie

Cookie userCookie = new Cookie("userCookie", "loginUser");
//sessionCookie.setMaxAge(60 * 15);
userCookie.setPath("/");
httpServletResponse.addCookie(userCookie);

如果我没有设置,setMaxAge那么它是浏览器级别的 cookie,即当用户关闭浏览器时,cookie 将被删除。如何将该 cookie 发送到用户计算机并从用户计算机自动登录?

谢谢

4

1 回答 1

0

无论哪种方式,您都不应该,永远,永远不要将密码存储在 cookie 中!

这是一篇关于持久 cookie 的好文章:持久登录 cookie 最佳实践 http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/

文章要点:

前提

  • Cookie 很容易受到攻击。在常见的浏览器 cookie 窃取漏洞和跨站脚本攻击之间,我们必须承认 cookie 不安全
  • 持久登录 cookie 本身就是足够的身份验证来访问网站。它们相当于将有效的用户名和密码合二为一
  • 用户重复使用密码。因此,您可以从中恢复用户密码的任何登录 cookie 比您无法从中恢复的登录 cookie 具有更大的潜在危害
  • 将持久性 cookie 绑定到特定 IP 地址会使它们在许多常见情况下不是特别持久
  • 用户可能希望同时在不同机器上的多个 Web 浏览器上拥有持久性 cookie

作者建议将用户名与一个大的随机数相关联,这是一种常见的做法。

于 2012-07-26T08:55:39.197 回答