首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在登录尝试失败的特定次数之后,如何强制用户填写captcha?

问在登录尝试失败的特定次数之后,如何强制用户填写captcha?
EN

Stack Overflow用户
提问于 2010-06-11 08:35:31
回答 1查看 976关注 0票数 3

我试图保护我的rails 3应用程序,防止蛮力登录猜测。我在用自逻辑。在尝试登录失败之后,强制用户(或机器人)填写captcha的最佳方法是什么?authlogic是否有一个内置机制来记录来自同一个ip的连续失败尝试的次数?我很感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2010-06-11 10:22:24

Authlogic有一个Authlogic::Session::BruteForceProtection模块(您可以找到它是如何实现这里的)。基本上,在N个不成功登录后,它会阻塞一个帐户。从它的文档

默认情况下,consecutive_failed_logins_limit配置选项设置为50,如果有人在尝试50次后连续登录失败,他们的帐户将被挂起。这是一个非常自由的数字,在这一点上,应该很明显,有些地方是不正确的。如果您希望降低这个数字,只需将配置设置为较低的数字:

代码语言:javascript
复制
  class UserSession < Authlogic::Session::Base
    consecutive_failed_logins_limit 10   
  end

为了启用这个字段,您的模型必须有一个failed_login_count (整数)字段。

您可以激活此模块并在控制器中添加captcha机制。

稍后编辑:我刚刚看到了“来自同一个IP”部分。

如果您需要“来自同一个IP”的保护(我假设您的意思是攻击者对某个特定帐户不感兴趣,所以目的不是破解特定的帐户,而是一个DOS攻击),那么我认为不应该在这个级别(rails应用服务器)执行。这应该由您的系统管理员在前端(代理)服务器上处理.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3021347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档