我试图保护我的rails 3应用程序,防止蛮力登录猜测。我在用自逻辑。在尝试登录失败之后,强制用户(或机器人)填写captcha的最佳方法是什么?authlogic是否有一个内置机制来记录来自同一个ip的连续失败尝试的次数?我很感谢你的帮助。
发布于 2010-06-11 10:22:24
Authlogic有一个Authlogic::Session::BruteForceProtection模块(您可以找到它是如何实现这里的)。基本上,在N个不成功登录后,它会阻塞一个帐户。从它的文档
默认情况下,consecutive_failed_logins_limit配置选项设置为50,如果有人在尝试50次后连续登录失败,他们的帐户将被挂起。这是一个非常自由的数字,在这一点上,应该很明显,有些地方是不正确的。如果您希望降低这个数字,只需将配置设置为较低的数字:
class UserSession < Authlogic::Session::Base
consecutive_failed_logins_limit 10
end为了启用这个字段,您的模型必须有一个failed_login_count (整数)字段。
您可以激活此模块并在控制器中添加captcha机制。
稍后编辑:我刚刚看到了“来自同一个IP”部分。
如果您需要“来自同一个IP”的保护(我假设您的意思是攻击者对某个特定帐户不感兴趣,所以目的不是破解特定的帐户,而是一个DOS攻击),那么我认为不应该在这个级别(rails应用服务器)执行。这应该由您的系统管理员在前端(代理)服务器上处理.
https://stackoverflow.com/questions/3021347
复制相似问题