2010-06-11 42 views

回答

1

Authlogic有Authlogic ::會議:: BruteForceProtection模塊(你可以找到它是如何實現的here)。基本上,它會在N次登錄失敗後阻止一個帳戶。從它的documentation

默認情況下, consecutive_failed_logins_limit 配置選項設置爲50,如果有人 連續登錄失敗後 50嘗試他們的帳戶將 暫停。這是一個非常自由的 號碼,在這一點上它應該是 顯然有些事情是不正確的。 如果你希望這個數字只是 將配置降低到一個較低的 號:

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

爲了使這一領域的 模式必須有failed_login_count (整數)場。

您可以激活此模塊並在控制器中添加您的驗證碼機制。

後來編輯:我剛纔看到'來自同一個IP'部分。

如果您需要'來自同一IP'的保護(我假設您的意思是攻擊者對某個特定賬戶沒有興趣,所以目的不是破解某個賬戶,而是一個DOS attack),那麼在我的意見它不應該在這個級別上完成(rails應用服務器)。這應該由您的系統管理員在前端(代理)服務器上處理。

+1

注意:您仍然需要告訴您的應用服務器登錄失敗,不是嗎? 我唯一的建議是在嘗試手動登錄時調用'being_brute_force_protected?'。如果設置爲true,則渲染capcha,將限制設置爲3次嘗試,鎖定時間爲1毫秒。 – 2010-06-11 15:16:13

相關問題