在我花时间学习PHP如何支持Unicode的过程中,我一直在努力让我的“记住我”饼干更加安全。然而,有一些我不理解的事情和一些我自己的想法,我想要一些建议和意见。
1)是否有任何方法采用不包含cookie的“记住我”功能?好奇,因为存储认证cookie存在明显的安全漏洞。并非所有事物都没有安全风险。
2)由于我不使用银行或“高度敏感”的信息,是否有必要要求用户输入更多“高调”区域的密码?如果我们在两分钟之后要求他们基本上登录,那么记住登录就好了。
3)存储身份验证cookie的绝对最佳方法是什么(除了“根本不”)?我目前已编码该区域以在cookie中设置单个标记(使用time()进行哈希处理,使用其用户代理,remote_addr和salt-sha256)。当所述用户返回时,它检查'sessions'表中的令牌,然后将IP与IP匹配以将其登录。如果令牌在那里但IP不匹配则默认取消设置cookie并要求他们以如果他们没有。
再次感谢大家。
答案 0 :(得分:6)
基本上没有。它需要客户端的某种存储;您无法知道客户端没有cookie(或类似的HTML 5客户端存储)。
这是你必须做出的权衡。应该要求最低,旧密码或其他形式的确认(电子邮件?)将其更改为新的。
除非您加密所有通信,否则您无法绝对防止cookie被盗以及随后的模拟。这是唯一安全的方法。 当然,将IP,用户代理等与cookie相关联可能会有所帮助,但依靠加密会更容易,更安全。(我误解了这一点 - 重要的是价值cookie是随机的,所以你应该改变你的世代方法,以减少可预测性。