如何在 Java 中正确处理蛮力登录尝试? [关闭]

Posted

技术标签:

【中文标题】如何在 Java 中正确处理蛮力登录尝试? [关闭]【英文标题】:How to treat Brute Force login attempts properly in Java? [closed] 【发布时间】:2021-10-10 10:53:11 【问题描述】:

我有一个带有 Spring Boot 框架的 Java 应用程序,我需要实现一种机制(除了之前实现的 Google reCaptcha 实现)用于暴力登录尝试。在开始实施之前,首先我决定了场景并且真的不知道与此相关的问题。能否请您澄清一下并就以下问题提出建议?

1. 我想在数据库中使用一个计数器来记录每个用户的失败登录尝试,并在成功登录后重置其值。如果计数器值为 10,那么我想禁用帐户 30 分钟,然后在此时间段后激活。此操作也可以由管理员执行。

但是,我不确定这种情况是否有更好的方法。有什么建议吗?如果激活需要管理员并且可以自动完成,那就更好了。

2.您建议使用哪些技术和方法?我想到了SpringSecurity,但不确定是否适合上面的场景。

【问题讨论】:

您使用哪种身份验证类型?如果是与数据库的 Spring Security 会话,您是否阅读过 baeldung.com/…?您是否考虑过使用带有 Oauth2/OpenID Connect 协议的外部身份提供者? 奇怪的是,有些版主再次关闭问题而不阅读。 SO 应该删除一些不足以获得此访问权限的用户的版主访问权限。 @GaëlMarziou 你关闭问题了吗? 不,不是我,是其他 3 个人,我想你可以看到他们的名字,因为它说“(帖子作者和具有关闭/重新打开投票权限的用户可以查看)”。 非常感谢您提供信息,但他们的名字不可见。 【参考方案1】:

我认为最好和最简单的解决方案是 reCAPTCHA 验证。我会同意的。

编辑:对于您的第一个问题,您可以保存登录失败的日期,然后您可以计算该日期,或者如果在 10 分钟内尝试超过 10 次,您甚至可以过滤它,您会阻止用户的电子邮件。

【讨论】:

感谢回复,但我实现了 reCAPTCHA 验证,需要额外的安全机制。 我认为 reCAPTCHA 是一个好的开始,但不足以达到这个目的。无论如何,为你的帮助投票。

以上是关于如何在 Java 中正确处理蛮力登录尝试? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中创建蛮力算法 [关闭]

蛮力模式搜索java

如何跟踪以蛮力方法尝试了哪些组合?

防止蛮力攻击的最佳方法是啥?

骑士之旅蛮力

在使用CefSharp处理身份验证请求时,如何在关闭时修复无限对话循环