使用authlogic进行暴力保护,Rails3.0.10

时间:2012-04-14 14:32:06

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

我想使用authlogic的Bruteforce功能,但不知道如何配置它。我的user_session.rb模型如下所示:

class UserSession < Authlogic::Session::Base

#edited code to ensure specific login error isn't displayed

    generalize_credentials_error_messages "Login/password invaild"


    #brute force protection
    consecutive_failed_logins_limit 3


    #orginal code commented out
        #def to_key
        #new_record? ? nil : [ self.send(self.class.primary_key) ]
        #end
        #def persisted?
        #false
        #end

end

我知道我需要比这更多的配置,但是什么?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您需要添加consecutive_failed_logins_limit和(可选)failed_login_ban_for。我在下面使用Authlogic的默认设置显示了一个示例。您不需要为这些值定义和使用常量,但我喜欢这样做,因此可以从任何地方以编程方式引用这些值。

class UserSession < Authlogic::Session::Base
  MAXIMUM_NUMBER_OF_FAILED_LOGIN_ATTEMPTS_ALLOWED = 50
  consecutive_failed_logins_limit MAXIMUM_NUMBER_OF_FAILED_LOGIN_ATTEMPTS_ALLOWED

  LOCKOUT_TIMEOUT_PERIOD = 2.hours
  failed_login_ban_for LOCKOUT_TIMEOUT_PERIOD

...
end