2014-07-18 58 views
0

在Java Web應用程序中使用基於表單的身份驗證時,如何指定最大數量的登錄重試次數?基於表單的身份驗證在JAVA Web應用程序中重試

+0

難道攻擊者不會隨意鎖定用戶賬戶嗎? – Kayaman

+0

如果他們用一堆用戶名使用某種強力攻擊,我會想象得到,假設這些用戶確實存在於數據庫中。 – user1154644

+0

我知道有Web應用程序,其中的用戶表有一個重試計數,所以我知道最大重試的想法存在,但它不符合基於表單的身份驗證? – user1154644

回答

1

您需要一個支持此功能的自定義領域實現。實際的身份驗證由配置爲與您的應用程序配合使用的領域進行管理(FileRealm,LDAPRealm,JDBCRealm--這些只是概念性示例,而不是JBoss的規範)。

默認情況下,典型的開箱即用不支持重試鎖定行爲。

所以,你必須創建自己的。

領域是特定的容器。例如,JBoss的領域可能不適用於Glassfish或Tomcat。這就是說,它們都非常簡單。

您可能很容易就開始複製基於JDBC的領域實現JBoss並添加一些邏輯的重試檢查。領域代碼將相當簡單。你仍然需要外部邏輯來做一些事情,比如重置鎖定,發現鎖定時發出警報等。

但是它的核心是,你需要一個定製領域來解決這個問題。

0

從您解釋的場景中,您可以使用計數器來跟蹤登錄嘗試次數,您可以捕獲客戶端ip /位置以應用特定限制。 可能有兩個失敗的案例。 1.無效登錄ID 2.密碼不正確

案例1:無效的登錄ID 如果登錄ID是無效的,你可以要求用戶輸入正確的ID,很多次,只要你想或高達5/8的嘗試只是爲了確保沒有人試圖通過編程構造破解。

情況2:密碼錯誤 如果登錄ID有效,並且輸入的密碼不正確,平均而言,您應該允許用戶輸入3次,然後將用戶重定向到安全問題模式或CAPTCHA模式,或者密碼更改模式

無論如何,通過DB實現的大部分系統日誌,即使您使用任何加密機制,但也要確保您的日誌被跟蹤以分析黑客行爲。

相關問題