0

当用户输入 x 个错误密码时,是否有一些好的资源教程或有人尝试在设计上实现验证码?

这个想法是验证码出现在许多请求中,以防止机器人或其他坏人出现并限制设计签名页面上的请求数量。

4

1 回答 1

1

我可以考虑通过两种方式做到这一点:

第一个基于 failed_attempts 属性(因此您应该在每次登录失败后增加它)。要在 Devise 上使用它,您可以创建自己的FailureApp覆盖响应方法以更新以对用户的 failed_attempt 属性进行增量。当用户达到验证码限制时,您可以设置 flash 属性来发出信号,因此,您可以在控制器上决定验证码。但是这种方式存在一个问题:当它为用户登录时,它对尝试不同登录的用户不起作用。

第二个是基于 IP 的:对于每次不成功的登录,您都会记录 IP 和不成功的尝试,当 IP 达到限制时,您设置已经提到的 flash 属性以表示来自该 IP 的请求数已经达到限制你可以显示验证码。您可以使用 ActiveRecord 和关系数据库,甚至像 Redis 这样的轻量级数据库来做到这一点。您还可以考虑从该数据库中删除旧数据的方法。

于 2012-06-16T03:01:05.563 回答