我们认为Stack Overflow不仅应该是非常具体的技术问题的资源,而且还应该是关于如何解决常见问题变化的一般指导原则."基于表单的网站身份验证"应该是这种实验的一个很好的主题.
我希望用户能够在我的网站上选择"记住我"框,这样他们每次来都不需要登录.因此,我需要在cookie中存储唯一ID以识别它们.用sha512和PHP中的长盐散列密码并将其存储在cookie中是否安全?如果cookie被盗,他们的密码会有风险吗?显然它必须以某种方式连接到他们的密码,否则如果cookie值被猜测或被盗,用户将无法阻止其他人登录.
另外,建议使用GUID作为唯一标识符吗?
谢谢,本
关于在cookie中保存哈希密码的安全风险有很多讨论,因为在访问用户的计算机时,黑客可以使用保存的密码登录.如果黑客可以访问用户的计算机,他可以捕获密码,因为浏览器也在本地保存密码(当然是加密的).密码设置在cookie中与浏览器保存的密码有什么区别?
出于显而易见的原因,应该发送临时GUID而不是密码.在任何情况下,我认为限制对已记录IP的访问可以关闭攻击者使用本地保存的GUID的大门.当然,它会限制记录期的长度,因为IP通常是动态的并且经常变化; 但我认为值得注意的是它的安全性.任何的想法?
我已经阅读了一些关于SO的文章和问题(例如这里),说你不应该在cookie中存储用户的密码.如果密码被盐渍和散列,为什么这个不安全?
特别是,为什么它不如使用会话安全,通常建议的替代方案?如果用户想要保持登录状态,那么这个新的cookie(具有会话ID /哈希)肯定与具有用户密码的cookie一样安全吗?如果cookie在某种程度上"被盗",攻击者可以以相同的方式以用户身份登录.
编辑:问题的主要症结是关于用户保持登录的部分,即通过"记住我?" 复选框.在这种情况下,肯定只有一个会话?