我有一個網站,用戶可以登錄訪問受限制的頁面。我試圖儘可能保證安全,所以我儘量遵循「最佳實踐」。是否告訴用戶該帳戶已被鎖定安全風險?
爲了降低對登錄頁面的暴力攻擊風險,我只允許用戶嘗試登錄設定的次數。如果用戶未能登錄3次,則該帳戶被鎖定,並且在用戶再次登錄之前必須解鎖。
我的問題是我是否應該在登錄頁面告訴用戶賬戶被鎖定?
從可用性的角度來看,似乎是正確的做法來顯示一條消息告訴用戶帳戶已被鎖定。但是這不意味着攻擊者可以使用它來查找現有的用戶名嗎?
經過一次失敗的登錄嘗試後,我只向用戶顯示「用戶名和/或密碼不正確」的消息,即我永遠不會告訴用戶到底發生了什麼問題。我這樣做是因爲否則攻擊者可以通過嘗試大量查找現有用戶名,並查看錯誤消息從「錯誤的用戶名」更改爲「錯誤的密碼」的時間。這是我讀過的關於安全性的文章推薦的。但是,如果我告訴用戶帳戶被鎖定時,我是否會陷入同樣的境地?攻擊者可以三次嘗試大量用戶名,並且如果顯示該帳戶被鎖定的消息,則攻擊者知道該用戶名有帳戶。
我會一直髮送一封電子郵件給賬戶已被鎖定的用戶,但我相信用戶不一定會立即看到該郵件,並且可能會繼續嘗試登錄,即使該賬戶已被鎖定。我認爲這會給用戶帶來一些煩惱,特別是如果他們知道他們正在使用正確的憑證,並且仍然收到證書無效的消息(實際上帳戶被鎖定,所以證書無關緊要)。
那麼我應該怎麼做?你是怎麼實現這個的?
鎖定3次嘗試:內置DOS攻擊。我所需要做的就是嘗試3次,並鎖定了一位用戶。 *任何*用戶。 –
黑名單,而不是用戶,這是更好的方法。當然,確定它不是微不足道的,例如。黑名單IP作品,但只是部分。 –
更長的討論:http://security.stackexchange.com/questions/487/why-do-sites-implement-locking-after-3-failed-password-attempts –