Login Perl中的登录尝试无效

Login Perl中的登录尝试无效,login,login-attempts,Login,Login Attempts,我正在用perl编写登录表单。我希望限制30分钟内无效登录尝试的3次。我应该使用哪种方式。请告诉我如何存储无效的登录尝试。您有几个不同的选项: Cookie-最不安全,因为不同的浏览器、清除Cookie等都会影响这一点。不推荐,但列出完整性 数据库-如果您使用的是数据库,那么您可以创建一个表来记录每次失败的登录尝试。在此表中记录以下值:日期,用户名。然后,在任何尝试登录期间,您(伪SQL)从登录尝试中选择COUNT(*),其中用户名=“$the\u user\u name”,日期介于“$now”

我正在用perl编写登录表单。我希望限制30分钟内无效登录尝试的3次。我应该使用哪种方式。请告诉我如何存储无效的登录尝试。

您有几个不同的选项:

Cookie-最不安全,因为不同的浏览器、清除Cookie等都会影响这一点。不推荐,但列出完整性

数据库-如果您使用的是数据库,那么您可以创建一个表来记录每次失败的登录尝试。在此表中记录以下值:
日期
用户名
。然后,在任何尝试登录期间,您(伪SQL)
从登录尝试中选择COUNT(*),其中用户名=“$the\u user\u name”,日期介于“$now”和“$now-30m”之间。
。如果返回值>=3,则拒绝登录。确保在用户名和日期上创建聚集索引。如果您关心空间,那么您可以拥有一个每晚运行的作业,并删除任何日期早于(比如)8小时的记录。(尽管这是一个审计日志。)


文件系统——这个选项太拜占庭了,我不打算深入描述它,假设您已经有了某种数据库备份存储。如果您必须这样做,那么它看起来像上面的数据库解决方案,没有SELECT语句,可能涉及用户名作为目录,其中包含一个包含每次登录尝试的文件,其中(mtime+30m感谢您的回复。我更喜欢数据库中的无效登录尝试。您可以将每个用户的登录尝试时间存储在单独的表中,并在允许用户登录之前查询该表。如果查询显示在过去30分钟内有三次或三次以上的尝试,您可以向用户显示一条消息,说明他们被锁定了一段时间。