2

我有一个具有登录功能的网站,我将这个人的用户名存储到一个 cookie 中。

我有几个问题:

  1. 如果我想保存此人的用户名,应该仅作为会话还是 cookie 来完成?
  2. 我应该为那些禁用 cookie 的人做些什么?我是否应该不存储任何东西而让他们每次都登录?

谢谢。

4

4 回答 4

4
  1. 用户的详细信息应保存在会话中。会话变量存储在服务器上,只有会话 ID 暴露给用户。使用 cookie 长期保存登录状态。确保安全地进行。
  2. 禁用 cookie 的用户只能通过GET变量使用会话。会话 ID 通过 URL 传回服务器。

请参阅Cookie 和会话如何工作?了解更多信息。

于 2013-08-24T05:42:45.273 回答
1

如果我想保存此人的用户名,应该仅作为会话还是 cookie 来完成?

实现会话的标准方法是使用 cookie。唯一的问题是您是否要存储一个持久性cookie,以便他们在关闭浏览器然后稍后再回来时不必再次登录。

我应该为那些禁用 cookie 的人做些什么?我是否应该不存储任何东西而让他们每次都登录?

虽然您可以通过通过每个链接的查询字符串和每个表单中的隐藏输入传递令牌来实现会话系统,但这种方法很容易泄漏会话(因为人们会复制/粘贴 URL 并将它们提供给其他人)和需要更多的努力(尤其是当您开始使用 JavaScript 将浏览器定向到 URL 时)。

Cookie 是在 WWW 上保持状态的标准方式,对于依赖于状态的站点部分(例如跟踪谁登录),只有在用户启用了 cookie 时才工作是完全合理的。

禁用 cookie 的用户是极少数,如果他们想登录网站,可以重新启用它们。

于 2013-08-24T06:01:46.077 回答
-1

Surly session 更好,如果您将其保存为 cookie,任何人都可以通过它进行注入。编辑他/她的浏览器 cookie 以以其他用户身份登录。但也许最好也阅读有关session hijacking的信息。

您可以使用Web Storage代替拥有现代浏览器的 cookie 。

于 2013-08-24T05:24:44.373 回答
-1

如果您只保存用户名以便“记住”用户而不是密码,那么使用 cookie 应该没问题。但是,当为每次使用(即会话)保留用户登录信息时,您应该始终使用会话。换句话说,仅将 cookie 用于从一次使用到下一次使用所需的非安全信息,并将会话用于每次使用所需的安全信息。

于 2013-08-24T05:30:31.420 回答