通过多次错误登录来限制用户

时间:2011-08-22 03:10:33

标签: php

我在后端应用程序中有一个登录表单

我需要找到一种方法来限制/拒绝用户,例如输入了至少五次错误的用户名/密码,并显示如下内容:

echo "You have entered wrong 5 times your username/password, you have to wait 10 minutes to the next login"

但是我需要保存什么?

ip或用户名?以及保存位置:文件或数据库?

修改

我道歉,因为我的问题没有明确

我已实现此系统但使用文件而不是将某些字段添加到数据库

我无法粘贴代码因为是huuuuuge而且我想我会使用我现在使用的系统

感谢 alex Michael Ames 您的时间,但无法接受您的答案,因为我正在寻找使用文件代替数据库的人

3 个答案:

答案 0 :(得分:1)

存储所有登录信息。存储登录状态(失败或成功)和日期/时间。然后查询并计算连续失败登录的数量。然后,您可以检查当前时间与上次失败登录之间的差异。

这将为您提供最多的信息,以便在发生时追踪它。

答案 1 :(得分:0)

您可能已将用户名和密码存储在某个后端数据库中。将一个整数列添加到名为“FailedLogins”的同一个表中,并将一个名为“LastLoginAttempt”的日期列添加到该表中。每次他们尝试登录时,将LastLoginAttempt设置为当前时间。每次输入错误密码时,都会增加FailedLogins。每次输入有效密码时,请将FailedLogins重置为零。

现在,您已经拥有了编写登录逻辑所需的数据库中存储的所有信息,这些信息在尝试登录时将如下所示:

1)如果FailedLogins> = 5并且距离LastLoginAttempt不到十分钟,告诉他们他们还无法登录。 (甚至不用担心检查密码。“)

2)如果FailedLogins> = 5且超过十分钟,请将FailedLogins重置为零,然后检查名称和密码。

祝你好运!

答案 2 :(得分:0)

我道歉,因为我的问题没有明确

我已实现此系统但使用文件而不是将某些字段添加到数据库

我无法粘贴代码因为是huuuuuge而且我想我会使用我现在使用的系统

感谢 alex Michael Ames 您的时间,但无法接受您的答案,因为我正在寻找使用文件代替数据库的人

相关问题