阻止用户登录5次失败

时间:2013-03-14 20:39:12

标签: php

我需要在5次登录尝试失败后阻止用户。我有一个名为“login_attempts”的表,它有3列“userid”,“user”,“attempts”。此外,我有一个.php脚本,用于检查用户的凭据,如'username'和'password',如果用户输入的密码不正确,他/她将有5次机会。现在可能一切都工作正常,即使数据也被保存在“login_attempts”表中,但在5次登录尝试失败后我需要阻止用户15分钟......怎么做...请帮助。我有2个单独的文件“process.php”和“login.php”。请指导我......

感谢

3 个答案:

答案 0 :(得分:2)

在login_attempts表中添加一个时间戳字段,用于跟踪用户上次尝试登录的时间以及尝试次数。对用户进行身份验证时,请检查尝试字段是否为5或更多以及上次尝试登录的时间。如果上次尝试的时间少于15分钟,则拒绝该请求。当用户成功登录时,请不要忘记重置计数。

答案 1 :(得分:0)

一种可能的解决方案是向DB添加另一个名为next_available_retry_time的字段(或任何您喜欢的字段)。当尝试== 5时,将next_available_retry_time设置为15分钟,并将尝试重置为0(因此可以重新启动)。

然后在您的代码中,在测试用户名,密码之前,请检查now()> next_available_retry_time。如果不是,请拒绝登录尝试。否则,继续使用现有逻辑。

答案 2 :(得分:0)

我会在login_attempts表中为last_attempt添加一列,然后在进行身份验证时添加一项检查以查看是否

attempts > 5
last_attempt in the past 15 minutes

如果两者都属实,请不要让用户登录

如果last_attempt超过15分钟,则重置尝试为1并尝试再次进行身份验证

对于伪代码抱歉,希望它有所帮助。