如何通过PHP验证密码?

时间:2016-05-31 20:52:41

标签: php validation security

我知道要存储密码,你必须哈希它。我使用password_hashpassword_verify来执行此操作。

但我很惊讶有些人说你不需要在哈希之前验证密码,因为无论如何你都要哈希。

我认为至少最好是验证用户输入长度超过字符数量的密码或者让用户输入特殊字符*,{{1} },"等)。至少要使密码更强。

所以我在这里有一些问题:

  • 对于密码进行验证并且仅对其进行哈希处理,这被认为是一种好习惯吗?
  • 在散列密码之前有额外的安全性来进行验证吗?
  • 如果是,那在验证中应该考虑什么?

注意:我想从安全角度了解所有这些问题。

提前致谢!

1 个答案:

答案 0 :(得分:0)

密码强度要求是上下文相关的。你不会谈论你的背景。

通常我会设置一个最小长度,并计算某种复杂性指数,以防止人们进入“aaaaaaaa”。或者' 12345678'。

但是密码强度要求很烦人,尤其是当您规定许多规则时。

我经常尝试实施另一种策略:我为访问者选择密码。这不是一个新的想法;考虑一下信用卡的个人识别码。这有很多好处:

  • 我的访客不必选择密码,这是他们经常使用的密码 发现很尴尬。
  • 我绝对控制密码的复杂性。
  • 我不可能知道访问者经常使用的密码(并在其他网站上破解他们的帐户)。

还有一个缺点:访问者必须记住'我选择的密码。把事情简单化。四位数PIN码已有10000种变体。为防止滥用,我限制了尝试次数。

对于需要非常安全的网站,您可能会增加密码的复杂性并定期重新发出密码。不要将密码存储在数据库中,只存储盐渍哈希。不要通过电子邮件发送密码,但要在SSL安全的HTML页面中显示。如果安全要求不高,则可以忽略其中一些规则。

相关问题