代码之家  ›  专栏  ›  技术社区  ›  Matt Sheppard

在Spring Security AuthenticationProvider中添加人为延迟,而不使DOS攻击更容易

  •  4
  • Matt Sheppard  · 技术社区  · 6 年前

    OWASP suggests 防止暴力密码猜测的一个可能对策是在检查密码时添加一个人工延迟。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Arjun    5 年前

    编辑2.0

    随着 Servlet 3.0版 ,为异步处理支持添加了支持,使添加人工延迟变得简单。

    问题:不支持异步处理的中间筛选器

    AttmeptFilter 在filterchain的基础上,在任何不兼容的过滤器潜入并应用我们添加延迟的逻辑之前。

    在我们之前的方法中,我们只依赖超时,这无助于导致异常终止请求。我有一张地图 AsyncContext

    失败尝试的次数由一个专门的服务管理,该服务侦听和管理每一次尝试 AbstractAuthenticationEvent

    对特定主体和主机地址的尝试被最外层的过滤器在指定的时间内通过可能的最少检查(甚至没有达到spring security)阻止,并且阻止时间随着失败尝试次数的增加而增加。

    在github签出代码 https://github.com/yourarj/spring-security-prevent-brute-force

    enter image description here