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