2012-02-12 172 views
1

我創建了一個登錄系統,並且想要阻止嘗試登錄幾分鐘的用戶輸入錯誤的用戶名和密碼讓我們說4次。有限的登錄嘗試

我知道如何在IP上阻止它,但這會爲例如創建塊。整個學校,如果我在那裏。 現在我可以使用該用戶輸入的用戶名來阻止訪問,但這會導致輸入的用戶名不存在於數據庫中。

我的問題是: 如何爲輸入不存在用戶名的用戶創建該塊。 我需要什麼樣的數據庫表。

此外,我已經尋找使用會話和cookie的可能性,但這留下了人們可以創建刪除會話和cookie的軟件的安全問題。

所以,如果任何人都可以幫助我,我將不勝感激。

+1

我會說,去找一個99%有效的解決方案。你說得對,阻止IP地址不是一個好主意,因爲這可能會阻止大量用戶;另外如果有人想要他們可以欺騙他們的IP地址。僅當有人試圖猜測特定用戶的密碼時,用戶名阻止纔有效;會話/ cookie可以被最終用戶輕鬆刪除。我建議使用幾種方法的組合:在N次登錄嘗試失敗後鎖定用戶名,將會話用於用戶允許使用的任何程度,並可能在大量嘗試後阻止IP地址。 – 2012-02-12 17:40:39

回答

2

我相信你試圖擺脫暴力攻擊,而不是一個可憐的丈夫忘記了他的用戶名。

實現一個困難的CAPTCHA機制,所以你可以防止大部分的自動攻擊。同時保持來自特定IP地址的嘗試次數以及這些連續嘗試之間的時間間隔。如果任何攻擊設法解決您的驗證碼,您仍然可以在幾分鐘內檢測到異常活動並阻止訪問整個IP。它可能會使整個組織脫機一段時間,但至少可以幫助他們免於因嚴重攻擊而遭遇停電。

會話和cookie不會幫助,因爲大多數蠻力系統都會清除併爲每個請求生成一個新的cookie。

+0

提示的問題。 我會研究它。 似乎像這個問題的一個很好的解決方案:) – Controvi 2012-02-12 17:58:57

+0

很高興成爲幫助! – Nirmal 2012-02-12 18:11:29