为禁用cookie的用户保存数据


Saving data for those with cookies disabled

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

我有几个问题:

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

谢谢。

  1. 用户的详细信息应保存在会话中。会话变量存储在服务器上,并且只有会话ID向用户公开。使用Cookie可以长时间保持登录状态。确保操作安全
  2. 禁用cookie的用户只能通过GET变量使用会话。会话ID通过URL传递回服务器

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

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

实现会话的标准方法是使用cookie。唯一的问题是,你是否想存储持久cookie,这样他们在关闭浏览器后再回来时就不必再次登录。

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

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

Cookie是在WWW上保持状态的标准方式,网站中依赖状态的部分(如跟踪登录者)只有在用户启用Cookie的情况下才能工作是完全合理的。

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

Surly会话更好,如果你把它保存为cookie,任何人都可以通过它注入。编辑他/她的浏览器cookie以其他用户身份登录。但也许最好也读一下会话劫持

您可以使用Web存储,而不是为拥有现代浏览器的用户设置cookie。

如果你只保存用户名以"记住"用户,而不是密码,那么使用cookie应该是可以的。但当保留每次使用(即会话)的用户登录信息时,你应该始终使用会话。换言之,只对从一次使用到下一次使用所需的非安全信息使用cookie,并对每次使用所需要的安全信息使用会话。