2011-04-07 193 views
1

我正在編寫一個Rails應用程序,我非常關注安全性。隨後,我採取的一種減少暴力攻擊的方法是在任何失敗的登錄請求後輸入sleep 2。這爲機器人增加了大量時間,使其幾乎不可能進行暴力破解。 (我也只允許每個IP有這麼多的請求,等等)。軌道狀態和睡眠?

但是,當我sleep 2,所有其他請求也停止2秒?我知道Rails是不完全線程安全的,但(雖然有在配置文件threadsafe!一個註釋掉選項...

是否有更好的方法和/或辦法只能睡覺了蠻力櫃子的線程?

回答

0

而是睡了2秒,我只是建議限制每個IP地址的登錄嘗試的次數限制蠻力的機會。

限制設置爲十點左右似乎是一個相當不錯的折中

  1. 不煩人l egitimate用戶
  2. 停止暴力攻擊

如果這個解決方案似乎對你來說太艱鉅,還有許多具有此功能內置在Rails中驗證庫(配置)如:

Devise

AuthLogic

+1

這實際上並非如此。我可以輕鬆編寫一個腳本,每個請求隨機生成一個新的IP,所以這並沒有什麼幫助。這不是一個合法的應用程序,而是一個旨在教會學生如何防止和應對入侵企圖的應用程序。此外,我鄙視authlogic或設計,甚至漂亮的認證。因此,使用預先構建的身份驗證的人並不知道它是如何工作的。它真的很煩人。 – sethvargo 2011-04-07 21:42:02

+1

我同意預構建庫100%,但我認爲這是一個非常好的方法來實現。我並不是說這是唯一的,但是教授學生不僅僅是一些學術理念。這個想法已經在大多數安全系統中實現,甚至是核心系統,例如iptables和拒絕主機。 – 2011-04-07 23:09:09