ruby-on-rails - 在使用 authlogic 尝试登录失败特定次数后,如何强制用户填写验证码?

标签 ruby-on-rails security authlogic brute-force

我正在尝试保护我的 rails 3 应用程序免受暴力登录猜测。我正在使用 authlogic .在特定次数的失败登录尝试后强制用户(或机器人)填写验证码的最佳方法是什么? authlogic 是否有内置机制来记录来自同一 IP 的连续失败尝试次数?我会很感激任何帮助。

最佳答案

Authlogic 有一个 Authlogic::Session::BruteForceProtection 模块(你可以找到它是如何实现的 here )。基本上,它会在 N 次登录失败后阻止一个帐户。来自其documentation :

By default the consecutive_failed_logins_limit configuration option is set to 50, if someone consecutively fails to login after 50 attempts their account will be suspended. This is a very liberal number and at this point it should be obvious that something is not right. If you wish to lower this number just set the configuration to a lower number:


  class UserSession < Authlogic::Session::Base
    consecutive_failed_logins_limit 10   
  end

In order to enable this field your model MUST have a failed_login_count (integer) field.



您可以激活此模块并在 Controller 中添加您的验证码机制。

稍后编辑 : 我刚刚看到'来自同一个IP'的部分。

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

关于ruby-on-rails - 在使用 authlogic 尝试登录失败特定次数后,如何强制用户填写验证码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3021347/

相关文章:

ruby-on-rails - 在 Postgres 上使用 Rails 的日期时间字段

java - 有什么理由不应该将我的 keystore 存储在版本控制中?

ruby-on-rails-4 - 登录时 authlogic 参数超出范围

php - SSL 登录,然后是常规 http...从数据库传输的数据有多脆弱?

ruby-on-rails - 将用户生成的文本安全地存储在数据库中 (Ruby/Rails)

ruby-on-rails - Authlogic 密码的安全性如何?

ruby-on-rails - 没有路由匹配 "/oauth/authorize"

ruby-on-rails - 在设计中跳过电子邮件验证

ruby-on-rails - id 与 name ruby​​ 的两种查找方式

ruby-on-rails - 尝试在本地为 ruby​​ on rails 设置 postgresql