如何在Java Web App中连续3次尝试登录失败后限制用户?

时间:2014-06-30 09:19:52

标签: java security session spring-mvc restriction

我希望在连续3次尝试登录Web应用程序失败后限制用户。是否只有HttpSession,没有任何数据库操作?我正在使用Spring MVC,但没有使用Spring-Security作为我的Web应用程序。如果有可能,请建议我。

2 个答案:

答案 0 :(得分:0)

您可以在会话中维护一个计数器用户登录失败的次数。 但是如果用户启动其他用户HttpSession将不起作用,这将限于浏览器。 您可以在第3次失败后从同一浏览器保留此数据库。 通常对于这类任务,人们更喜欢在db中维护。

答案 1 :(得分: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() );