【问题标题】:How to prevent HTTP session flood attack如何防止 HTTP 会话泛洪攻击
【发布时间】:2018-03-22 19:04:39
【问题描述】:

洪水攻击: 简而言之,黑客可以不断攻击服务器(没有 cookie)以强制 Java 容器不断创建新会话。

我正在使用 Spring Security 来管理会话。我意识到jsessionid 在登录之前一直被创建,这不是我想要的。

所以我做到了:

1) 在 Spring 安全配置中:

sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER)

2) 在 jsp 中禁用会话创建。因为我使用的是 apache tile,由于它使用的是动态包含,所以我必须在所有 jsp 片段中禁用会话创建。这很乏味。

<%@page session="false"%>

乍一看,这很好,但有一个场景我仍然创建了会话。

假设在登录之前,我访问了一个只有经过身份验证才能访问的 url,Spring 会将我重定向到登录页面。

在我被重定向之前,响应已经指示设置一个新的 cookie,一个会话已经创建。

我的问题:

1) 会话洪水攻击是一个严重的问题吗?我真的应该照顾它吗?

2) 有没有更好的方法来处理这个问题?有什么最佳做法吗?

3) 我的代码会怎样?它实际上应该可以工作,我怀疑 cookie 是由 Spring 创建的,尽管我已经将它设置为 SessionCreationPolicy.NEVER。我无法设置为Stateless,登录后我仍然需要会话。

其实相比DDOS我更关心会话攻击,我还在Spring中设置了.maximumSessions(1)来防止多次登录。但上述问题发生在登录之前。请帮忙。谢谢。

【问题讨论】:

  • 我首先想到的可能是这样的控件:如果多个请求在短时间内从同一个 IP 地址到达(例如 10 秒内有 10 个请求),则阻止该请求
  • 我同意@AngeloImmediate。如果您的目标是防止会话泛洪攻击,这种攻击是“一种”DDoS 攻击,请在较低级别采取措施来防止此类事情发生,而不是让您的应用程序服务器打扰它。通过较低级别,我的意思是使用防火墙。以下是使用 iptables 执行此操作的方法:unix.stackexchange.com/questions/139285/…

标签: spring security session cookies spring-security


【解决方案1】:

您的观点看起来很有道理,如果不加以处理,可能会成为一个严重的问题。我发现这个话题已经有一个未解决的问题。但是有一种变通方法可以控制这种行为。

public class ApiSecurityConfig extends WebSecurityConfigurerAdapter {
        public HttpSessionRequestCache getHttpSessionRequestCache() {
            HttpSessionRequestCache httpSessionRequestCache = new HttpSessionRequestCache();
            httpSessionRequestCache.setCreateSessionAllowed(false);
            return httpSessionRequestCache;
        }

        @Override
        protected void configure(final HttpSecurity http) throws Exception {
            http.requestCache().requestCache(getHttpSessionRequestCache());
}

更多详情请参考以下链接。

https://github.com/spring-projects/spring-security/issues/4242

How to stop Spring Security from creating a new session?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-03
    • 2011-10-27
    • 1970-01-01
    • 2014-02-06
    • 2016-08-15
    • 2021-11-03
    • 2019-05-02
    • 2017-03-31
    相关资源
    最近更新 更多