我正在处理登录失败的身份验证系统。
如果用户登录失败,数据库中的尝试次数会递增,如果达到定义的限制,PHP 会将 session 验证码变量设置为 true。
因此,当用户(或垃圾邮件机器人)再次获得登录页面时,由于 session 变量,将显示一个验证码表单
但由于垃圾邮件机器人最终可能会删除 session cookie 并重试,因此这可能无效。
我应该改用数据库解决方案吗?您将如何实现这一点(使用/或不使用数据库)?
最佳答案
垃圾邮件机器人可以相当轻松地绕过 session 限制,因此必须在数据库中完成才能有效。垃圾邮件机器人还可以在每次请求时更改其 IP 地址,尽管这更难实现。
您必须在用户表中放置一个从 0 开始的登录尝试字段,当他们输入错误密码时增加此值,并在他们成功登录时将其重置为 0。当有人尝试以登录尝试次数 > 5 的用户身份登录时,您会将他们带到另一个页面,其中包含他们必须正确输入的验证码(即使密码错误)。
关于php - 多次登录失败后启用验证码 - 如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235619/