几次登录失败后启用验证码 - 如何实现?

you*_*es0 5 php security captcha login

我正在使用登录失败的auth系统.
如果用户登录失败,则数据库中的尝试次数会增加,如果达到定义的限制,PHP会将会话验证码变量设置为true.
因此,当用户(或垃圾邮件机器人)再次获取登录页面时,由于会话变量而显示验证码表单

但是,由于垃圾邮件机器人最终可能会删除会话cookie并重试,这可能无效.

我应该使用数据库解决方案吗?你将如何实现这个(使用/不使用数据库)?

Tim*_*imm 5

垃圾邮件机器人可以相当容易地绕过会话限制,因此必须在数据库中完成才能生效.垃圾邮件机器人也可以在每次请求时更改其IP地址,但这很难实现.

您必须在users表中放置一个登录尝试字段,该字段从0开始,在收到密码时将其递增,并在成功登录时将其重置为0.当有人尝试以登录尝试次数> 5的用户身份登录时,您可以将他们带到另一个带有验证码的页面,这些页面必须正确输入(即使密码错误).