首先,限制每個IP的登錄頁面。在登錄頁面上使用invisible captcha system。然後,您應該爲每個IP設置登錄限制,但是您還應該將每個用戶的登錄限制作爲阻止僵屍網絡免遭來自多個IP的暴力破壞的最後手段。如果嘗試強制他們的密碼被發現,則發送電子郵件給用戶。如果有人嘗試使用一堆不同的IP地址,請勿發送大量重複的電子郵件。僵屍網絡可以做一些嚴重的垃圾郵件,否則,更糟糕的是,會在垃圾郵件文件夾中產生一條重要消息。請務必提及他們可能想更改密碼,和/或升級其實力。
如果您將IP登錄限制設置爲高限。很多地方使用三次罷工,你出去了。這是堅果和用戶不友好的。它應該至少有十個或更多的現實性,當你觸及它時,你應該得到一個基於時間的禁令,而不是「呼叫客戶支持」禁令。沒有人會在十次嘗試中暴力破解密碼。因此,我建議每IP登錄限制爲10,每用戶登錄限制爲1,000到10,000(足夠高以阻止拒絕服務攻擊,但低到僵屍網絡不太可能破解密碼) 。對於系統管理員/隨叫隨到的傳呼機,您應該有一些警告,即在您工作之前有一個僵屍網絡會在您達到該閾值之前觸發很長時間。 (保持所有用戶和個人用戶失敗的登錄次數,進行滾動平均,如果超過任一閾值都會發出警報。請記住,如果某人擁有足夠多的用戶列表,則至少有一個帳戶在整個帳戶用戶基數與攻擊一個帳戶的成功概率大致相同。)
在防火牆處阻止明顯的攻擊者。一段時間後禁用。一定要做到這一點,以便客戶支持可以解除某人的禁令,但要確保禁令與攻擊有關。你不應該解鎖一個試圖破解二十個不同用戶登錄的人。當然,這裏的判斷是因爲腳本小子與被僵屍網絡接管的非故障家庭成員和奶奶確實可以設法讓自己的IP被禁止。
如果你真的有時間去做所有這些,你將擁有一流的登錄表單。我懷疑你需要那麼多。
「每個IP」在這裏是關鍵。沒有這些,你已經對用戶引入了一個微不足道的拒絕服務攻擊。 – 2009-10-27 16:55:47
還有設計:http://github.com/plataformatec/devise/ – Mike 2009-10-27 17:43:04
驗證鏈接是錯誤的。應該是http://github.com/binarylogic/authlogic – Jim 2009-10-27 21:01:22