我正在硬化我的網絡appliocation的安全層,和我有一個登錄蠻力保護實施的幾個問題:存儲首選登錄蠻力對策
我應該使用什麼樣的存儲存儲每個用戶/ IP失敗登錄的計數器?如果一個簡單的APC/Memcache條目足夠了,還是需要一個更穩定和持久的存儲方法,也意味着在每次登錄時都會寫入額外的SQL查詢或文件?或者甚至將它們存儲在會話條目中(我的會話由Memcache處理,所以它們完全相同)。
關於全系統計數器的相同問題(爲了觸發登錄鎖定或限制分佈式蠻力企圖...)?我認爲這裏的持久性更重要,但它也意味着在每個登錄中查詢/寫入。
對檢測到的登錄蠻力企圖進行適當的返回響應是什麼?我應該返回一個404錯誤,503服務不可用?甚至是通過DROPing甚至通過IPTables/Netfilter對攻擊者IP進行深入攻擊?我正在談論一個真正檢測到的蠻力企圖,而不是一個用戶登錄失敗的情況,因爲他無法回憶他的通行證。
我原本以爲一個緩存存儲(APC /內存緩存),就足以存儲計數器,但我擔心的是,高速緩存可能會失敗是因爲什麼原因,使得這一防禦層是無效的。
對於其他的考慮,我已經閱讀了一些不錯的帖子,如What-is-the-best-distributed-brute-force-countermeasure和Number-of-attempts-to-brute-force-an-average-password,但隨時拋出任何建議,將不勝感激。
範圍的觀點有所幫助,我想我只是得到最好的,並做一個緩存+ MySQL存儲。如果緩存失敗,那麼計數器仍然可以在數據庫中使用,但是如果緩存處於啓動狀態,它將阻止對每個日誌記錄的系統SELECT讀取查詢。 – Claaker 2012-04-11 09:13:17