Cookie是否足以存储登录数据?

时间:2010-05-24 16:07:37

标签: authentication cookies credentials

我正在阅读Head First PHP / Mysql书,他们说要将用户的用户名,电子邮件存储到cookies和sessions.cookies中?我应该将它们存储在会话和cookie中,还是只存储其中一个?

我没有将任何敏感数据存储在密码等cookie中

7 个答案:

答案 0 :(得分:1)

如果他们需要登录某个地方,可以安全地假设有人拥有cookie。会话实际上也依赖于cookie。请注意您实际放入cookie中的数据。

答案 1 :(得分:1)

  

假设每个人都知道有一天有饼干是否安全?   或者我应该将它们存储在会话和cookie中吗?

2个问题 - 但两者都有相同的答案。

如果客户未启用Cookie,则不要尝试使用会话。尽管有一些非常复杂的代码,但它无法一致,安全和可靠地处理这种情况。

你可以使用持久性cookie作为“记住我”的功能 - 但是看看eBay,Google等人是如何实现这一点的 - 即只有在用户明确要求的情况下才这样做 - 即便如此,将其视为是一个长时间运行的会话(即存储数据服务器端并在cookie中放置对数据的引用)。或者,因为这个.__ curious_geek建议您考虑加密它 - 但请记住,这不能防止MITM /重放攻击。

  

我没有将任何敏感数据存储在密码等cookie中

否 - 用户名和电子邮件地址都可能具有敏感性。

下进行。

答案 2 :(得分:0)

当然,根据网站的类型和目标受众,我会说只需要进行一次小型cookie测试,或者在人们登录时启用Cookie的信息就足够了。

您还应该知道PHP默认使用Cookie来保存会话ID

答案 3 :(得分:0)

取决于任务和背景 通常,在cookie和会话中存储都是无用的。会话是更可靠和安全的方式 虽然,再次取决于任务。为什么要保存电子邮件?您根本不在服务器端保存用户数据吗?

答案 4 :(得分:0)

,只要您正确加密数据,就可以将敏感数据存储在Cookie中。并且会话总是优选用于存储小块信息,会话显然更安全,因为它们在服务器端被跟踪并且客户端不知道它们。

答案 5 :(得分:0)

我不会在cookie中存储用户名/传递。相反,我会存储一个登录哈希。也许是用户名,IP,用户代理等的一些组合。将其存储在服务器上(SQL),并使用它来跟踪登录。您可以使用该数据最终解析哈希到用户信息。

答案 6 :(得分:0)

显然,你们两个都没有读过他的背景。他不知道什么是cookie,什么是会话。

Cookie(也称为Web Cookie,浏览器Cookie和HTTP Cookie)是由用户的Web浏览器存储的文本字符串。 (wikipedia.org)

会话使用会话标识符(会话ID)存储在Web服务器上,该会话标识符是作为运行Web浏览器的最终用户的第一个(有时是第一个经过身份验证的)请求的结果而生成的。 (wikipedia.org)

有两件不同的事情。

主要是验证用户必须在$ _SESSION或$ _COOKIE中存储他的登录信息。

$ _SESSION是服务器端,它不需要显着加密,因为只有你的脚本才能读取它。

$ _COOKIE必须始终加密,因为浏览器(如带有它的Firefox有大量的插件可以打印出形式的cookie)可以显示它们,加密方式是你唯一能做的就是比较他的登录名也用该cookie加密,以查看他是否经过身份验证。比较不解码。最好的编码和简单加密是MD5

这并不意味着$ _SESSION和$ _COOKIE在那里进行身份验证或类似的东西,你可以用它们做更多的魔术。