【问题标题】:Does Google reCaptcha enough for preventing from brute force attacks?Google reCaptcha 是否足以防止暴力攻击?
【发布时间】:2021-08-05 22:32:18
【问题描述】:

在我的 Java 应用程序(使用 Spring Boot)中,我实现了 Google reCaptcha v3,现在我正在尝试实现这样的机制,以防止对登录表单的暴力攻击。我想通过检查无效的登录尝试来实现Spring Security Brute Force Protection 中提到的实现,然后在 3 次登录尝试失败后禁用帐户一段时间。

但是,在搜索其他可能的场景或机制时,我发现 Google reCaptcha 也可能有助于实现这一目标。但我不确定额外的实现(除了 Google reCaptcha 之外)是否有助于防止暴力攻击。

那么,Google reCaptcha 是否足够,或者我是否需要Spring Security Brute Force Protection 中提到的额外实现。有什么想法吗?

【问题讨论】:

    标签: java spring spring-security recaptcha brute-force


    【解决方案1】:

    验证码所做的只是试图证明您的用户是人类。 Google 的 reCaptcha 是客户端安全性的良好开端,但您确实希望分层多种形式的保护。

    这可能包括禁用您描述的帐户,限制给定时间段和 IP 的登录请求数,或要求发送电子邮件以授权无法识别的登录。这在很大程度上取决于您的设计决定。

    Baeldung 有一个 good article 使用 Spring Security 防止暴力攻击,它提供了一个基于尝试次数的 IP 阻塞的可行示例。

    【讨论】:

    • 非常感谢这个好的解释,投了赞成票。我一定会关注一篇关于 Baeldung 的合适文章。但我想知道你提到的文章是否也让我有机会通过用户名而不是 ip 来计时用户?因为如果有来自同一家公司的多个用户也有相同的 ip 地址,那么阻止 ip 可能不是一个好主意。我说的对吗?
    • @Rosa 你可以改变loadUserByUsername 的方法来做你需要的。你是对的,IP可以共享。移动网络尤其如此。
    • 我想实现您建议的页面,而我正是在那时,我刚刚添加了 if (loginAttemptService.isBlocked(ip)) {} 块和 getClientIP 方法。但是,我不确定如何将org.springframework.web.context.request.RequestContextListener 添加到我的 maven,因为 Maven Repo 中没有它的库。有什么想法吗?
    • @see with importing the "spring-context" package with maven(通常它包含在spring boot中,但并非总是如此,这取决于您如何制作捆绑包)。
    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 2013-10-27
    • 2014-12-17
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多