在java Web应用程序中使用基于表单的身份验证时,如何指定最大登录重试次数?
答案 0 :(得分:1)
您需要一个支持此功能的自定义域实现。实际身份验证由配置为与您的应用程序一起使用的领域管理(FileRealm,LDAPRealm,JDBCRealm - 这些只是概念性示例,而不是JBoss的规范)。
默认情况下,典型的开箱即用不支持重试锁定行为。
所以,你必须创建自己的。
领域是特定于容器的。例如,JBoss的领域可能不适用于Glassfish或Tomcat。也就是说,它们都很简单。
您可以轻松地开始为JBoss复制基于JDBC的领域实现,并为重试检查添加一些逻辑。领域代码相当简单。您仍然需要外部逻辑来执行重置锁定,在检测到锁定时发送警报等操作
但它的坚果是,你需要一个自定义领域才能解决这个问题。
答案 1 :(得分:0)
从您解释的方案中,您可以使用计数器来跟踪登录尝试次数,您可以捕获客户端IP /位置以应用特定限制。 可能有两个失败的案例。 1.登录ID无效 2.密码不正确
案例1:登录ID无效 如果登录ID无效,您可以要求用户输入正确的ID,多次输入或最多5/8次尝试,以确保没有人试图破解编程结构。
案例2:密码不正确 如果登录ID有效,并且输入的密码不正确,则平均应允许用户输入最多3次,然后将用户重定向到安全问题模式或CAPTCHA模式或密码更改模式
无论如何,大部分登录系统都是通过DB实现的,即使您使用任何加密机制,但要确保跟踪您的日志以分析黑客攻击尝试。