我知道要存储密码,你必须哈希它。我使用password_hash
和password_verify
来执行此操作。
但我很惊讶有些人说你不需要在哈希之前验证密码,因为无论如何你都要哈希。
我认为至少最好是验证用户输入长度超过字符数量的密码或者让用户输入特殊字符*
,{{1} },"
等)。至少要使密码更强。
所以我在这里有一些问题:
注意:我想从安全角度了解所有这些问题。
提前致谢!
答案 0 :(得分:0)
密码强度要求是上下文相关的。你不会谈论你的背景。
通常我会设置一个最小长度,并计算某种复杂性指数,以防止人们进入“aaaaaaaa”。或者' 12345678'。
但是密码强度要求很烦人,尤其是当您规定许多规则时。
我经常尝试实施另一种策略:我为访问者选择密码。这不是一个新的想法;考虑一下信用卡的个人识别码。这有很多好处:
还有一个缺点:访问者必须记住'我选择的密码。把事情简单化。四位数PIN码已有10000种变体。为防止滥用,我限制了尝试次数。
对于需要非常安全的网站,您可能会增加密码的复杂性并定期重新发出密码。不要将密码存储在数据库中,只存储盐渍哈希。不要通过电子邮件发送密码,但要在SSL安全的HTML页面中显示。如果安全要求不高,则可以忽略其中一些规则。