保存禁用cookie的数据

时间:2013-08-24 05:17:35

标签: php

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

我有几个问题:

  1. 如果我想保存此人的用户名,是否应该仅以会话或Cookie的形式进行?
  2. 我应该为那些禁用cookie的人做些什么?我不应该存储任何东西,只是让它们每次都登录吗?
  3. 感谢。

4 个答案:

答案 0 :(得分:4)

  1. 用户的详细信息应保存在会话中。会话变量存储在服务器上,只有会话ID向用户公开。使用cookie可以长时间保留登录状态。确保安全。
  2. 禁用Cookie的用户只能通过GET变量使用会话。会话ID通过URL传递回服务器。
  3. 有关详细信息,请参阅 How do Cookies and Sessions work?

答案 1 :(得分:1)

  

如果我想保存此人的用户名,是否应该仅以会话或Cookie的形式进行?

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

  

对于禁用cookie的人,我该怎么办?我不应该存储任何东西,只是让它们每次都登录吗?

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

Cookie是在WWW上保留状态的标准方式,对于依赖于状态的网站部分(例如跟踪登录者),只有在用户启用了Cookie的情况下才能正常工作。

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

答案 2 :(得分:-1)

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

答案 3 :(得分:-2)

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

您可以使用Web Storage代替使用现代浏览器的Cookie。