PHP:记得我和安全吗?
在我花时间学习PHP如何支持Unicode的过程中,我一直在努力使我的“记住我”Cookie变得更加安全。 然而,有一些我不明白的东西,还有一些我自己的想法,我想提出一些建议和意见。
1)是否有任何方法采用不记录Cookie的“记住我”功能? 很好奇,因为存储身份验证Cookie存在明显的安全漏洞。 并不是说每件事都没有安全风险。
2)由于我没有使用银行或“高度敏感”的信息,是否有必要要求用户输入他们的密码以用于更“高调”的区域? 如果我们只是在两分钟后要求他们实质上登录,记住登录名就会很浪费。
3)存储身份验证Cookie的绝对最佳方法是什么(除了“完全不”)? 我目前编码该区域以在Cookie中设置单个标记(使用time(),其用户代理,remote_addr和salt - sha256)进行散列。 当所述用户回来时,它检查令牌的'会话'表,然后将IP与IP相匹配以登录它们。如果令牌存在但IP不匹配,则它默默取消cookie,并要求它们以如果他们没有一个。
再次感谢大家。
基本上没有。 它需要客户端的某种存储; 您无法知道客户没有Cookie(或类似HTML 5客户端存储)的身份。
这是一个你必须决定的折衷。 最小值,旧密码或其他形式的确认(电子邮件?)应该被要求将其更改为新的。
除非您加密所有通信,否则无法完全防止cookie被盗用和随后的冒充。 这是唯一的安全方法。 当然,将IP,用户代理等与cookie相关联可能会有所帮助,但依靠加密更容易且更安全。 (我误解了这一点 - 关于cookie的价值的重要性在于它是随机的,所以你应该改变你的世代方法是不太可预测的)
上一篇: PHP: Remember Me and security?
下一篇: How can I create a secured "remember me" system using PHP?