PHP 密码尝试阻止

mic*_*mic 5 php

我想知道在用户尝试 5 次错误登录后处理阻塞计算机的最佳方法。

我本来想通过 IP 来实现,但后来我开始考虑如果用户通过网关并共享一个公共 IP 会怎样。我不想因为同一网络上的其他人输入不正确的数据而潜在地阻止合法用户。

Cookie 是另一种选择,但用户可以从浏览器中清除它们,因此我认为它们的效果非常低。

其他人可以给我更多关于这个的想法吗?

谢谢麦克风

Mar*_*rcx 1

我会做类似的事情:

如果用户尝试登录 5 次错误:

  • 阻止用户登录 15 [xxx] 分钟(因此,如果他也尝试密码正确,则不会起作用)

  • 添加验证码控件,以便其他用户可以顺利登录...

我将通过 IP 和用户名来做到这一点...

只需将最后一次错误尝试的时间戳保存在数据库中,然后保存错误尝试的增量值。

然后,如果他在上次错误尝试之后的确定时间(假设 15 分钟)之前尝试登录,并且

  • 增量值低于最大登录尝试次数,只需将增量值+1 和时间戳更新为新时间戳

  • 增量值等于(或更高),您阻止登录尝试并使用新时间戳增加时间戳