2011-02-28 139 views
1

我已经实现了一个登录系统,其中3次尝试失败后(使用$_SESSION变量)在用户的计算机上创建了一个在10分钟内过期的cookie。现在我知道这当然是不够的,因为他们可以删除cookie。现在,我想知道的是,当我通过IP的&用户组合连接捕获不正确的登录表时,该表什么时候被清除?当用户在块时间到期后成功登录?限制登录尝试保护BFA的

假设这张表填充了1000个条目,我该如何自动清除它?桌子的结构是什么?

我提出这样的:
4个领域: ID,IP,用户名(这将是他们的电子邮件地址),block_time(时间用户可以再次登录)?

回答

1

您可以在第一次不成功登录后创建记录,并在登录成功后将其删除。
第二种方法是创建“修改”列,并使用一些php-cron脚本进行清理。

INSERT INTO user_logins(user_hash, time) VALUES(?,?) 
ON DUPLICATE KEY UPDATE time = now() 

当然,您的主键将是user_hash。

+0

这是我的计划,虽然我从来没有做过这样复杂的登录系统。 – 2011-02-28 08:31:04

+0

我不认为这会很复杂。您可能希望根据用户IP和用户名创建一个散列,并在登录失败时将其添加到数据库,在第二次登录后,您只需更新用户记录,然后在成功登录后,您将删除所有记录,其中user_hash =散列($ userIp。$ userName)。 – mailo 2011-02-28 08:32:39

+0

谢谢,我会尝试。 – 2011-02-28 08:34:15