1

我有一个登录表单,我想检查失败的登录尝试并根据尝试采取适当的措施。

我是这样想的:

  1. 连续失败尝试之间的最短允许时间为 1 秒。

  2. 当尝试失败时,首先删除数据库中 1 秒前发生的旧条目。

  3. 如果大于 1 秒,则在特定次数的尝试后(比如说 3 次),向用户显示一条消息,询问他是否要重置密码或重试(类似于 facebook)。

  4. 如果最后一次登录尝试发生在不到 1 秒内,则阻止该 IP 地址 15 分钟。

已经浏览了该网站上的其他帖子,并且我看到人们使用不同的方法,例如显示验证码或使用 cookie 和其他方法。

所以我的问题是解决这个问题的最佳方法(或标准方法)是什么?

4

1 回答 1

1

在您的用户/成员表上添加两个新列:“上次登录日期(时间)”和“登录尝试次数”。

对于登录尝试,将“上次登录日期”设置为当前日期并增加“登录尝试次数”。然后,您可以检查每次尝试是否已超过最大尝试次数,或者尝试是否发生得太快。尽管从事物的声音来看,您可能希望对定时尝试进行客户端和服务器端验证的混合。

成功登录后,您清除“登录尝试次数”。

于 2013-02-19T14:41:38.357 回答