我正在阅读Head First PHP / Mysql书,他们说要将用户的用户名,电子邮件存储到cookies和sessions.cookies中?我应该将它们存储在会话和cookie中,还是只存储其中一个?
我没有将任何敏感数据存储在密码等cookie中
答案 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在那里进行身份验证或类似的东西,你可以用它们做更多的魔术。