我有一个登录表单,我想检查失败的登录尝试,并根据尝试采取适当的措施。
我在考虑这些问题:
连续失败尝试之间的最短允许时间为1秒
当尝试失败时,首先删除在1秒之前发生的数据库中的旧条目。
如果超过1秒,则经过特定次数的尝试(假设为3)后,向用户显示一条消息,询问他是否要重置密码或重试(类似于Facebook)。 / p>
如果上次登录尝试发生的时间不到1秒,则阻止IP地址15分钟。
我已经已经浏览了本网站上的其他帖子,我看到有人使用不同的方法,比如显示验证码或使用Cookie和其他方法。
所以我的问题是解决这个问题的最佳方法(或标准方法)是什么?
答案 0 :(得分:1)
在您的用户/成员表上添加两个新列:“上次登录日期(时间)”和“登录尝试次数”。
对于登录尝试,将“上次登录日期”设置为当前日期并增加“登录尝试次数”。然后,您可以检查每次尝试是否已超过最大尝试次数,或者尝试是否发生得太快。虽然从事物的声音来看,您可能希望在定时尝试中混合使用客户端和服务器端验证。
成功登录后,您可以清除“登录尝试次数”。