2014-06-30 38 views
0

我想在連續三次不成功嘗試在我的Web應用程序中登錄後限制用戶。沒有任何數據庫操作,只有HttpSession可能嗎?我正在使用Spring MVC,但是沒有爲我的Web應用程序使用Spring-Security。如果可能,請告訴我方式。如何在Java Web App中連續三次不成功登錄後限制用戶?

+0

你打算使用Spring Security嗎? – geoand

+0

沒有..這個應用程序..現在不可能.. :( –

+0

好吧,我看到:)!!! – geoand

回答

0

您可以在會話中維護一個計數器多少次用戶登錄失敗。 但是,如果用戶啓動一些其他用戶HttpSession將無法工作,這將被限制在瀏覽器。 你可以在同一瀏覽器發生第三次故障後保留這個db。 通常對於這些類型的任務,人們更喜歡用db來維護。

0

爲了更好的方法,你需要HttpSession和數據庫。示例:帳戶可以在3次嘗試失敗12小時後鎖定。如果嘗試失敗後再次12小時後,鎖定時間將爲24小時(或者更長時間),所以您需要登錄表來存儲這些工件。

OWASP有一個很好的庫叫ESAPI,只需檢查它。它主要有可以讓你實現的接口,但有一個參考實現只是探索它。

incrementFailedLoginCount(); 
    if (getFailedLoginCount() >= ESAPI.securityConfiguration().getAllowedLoginAttempts()) { 
          lock(); 
        } 
    throw new AuthenticationLoginException("Login failed", "Incorrect password provided for " + getAccountName()); 
相關問題