我实现了一个登录系统,在 3 次尝试失败后(使用 $_SESSION
变量)在用户计算机上创建一个 cookie,该 cookie 在 10 分钟后过期。现在我知道这肯定是不够的,因为他们可以删除 cookie。现在,我想知道的是,当我实现一个表来通过 IP 和用户名组合捕获不正确的登录时,该表何时被清除?当用户在阻塞时间到期后成功登录?
假设此表填充了 1000 个条目,我如何自动清除它?表的结构是什么?
我建议:
4 个字段: ID、IP、用户名(这将是他们的电子邮件地址)、block_time(用户可以再次登录的时间)?
最佳答案
您可以在首次登录失败后创建记录,登录成功后删除记录。
第二种方法是创建“修改过的”列,并使用一些 php-cron 脚本清理它。
INSERT INTO user_logins(user_hash, time) VALUES(?,?)
ON DUPLICATE KEY UPDATE time = now()
当然,您的主键将是 user_hash。
关于php - 限制登录试图防止 BFA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139654/