Tomcat 因数据包过大而拒绝服务

Tomcat 因数据包过大而拒绝服务

我曾在 ITSecurity 上问过这个问题,但我觉得这个问题放在这里更好。

在最近的一次评估中,我发现向 tomcat 服务器发送大型 (>5 MB) 请求会导致服务器 CPU 使用率达到 100%。我想到的最简单的解决方法是在连接器上使用 maxPostSize。但是这没有帮助,因为我需要发送的请求不是“form-url-encoded”。我读了一番,发现 maxPostSize 仅适用于该标头。

那么,在将如此大的数据包传递给应用程序之前,有什么其他方法可以在服务器上阻止它呢?

换句话说:如何防止攻击者通过发送多个大数据请求对 Tomcat 服务器发起 DoS 攻击?

答案1

如果 CédricC 的回答没有帮助 - 使用带有 mod_security 的 httpd 作为前端 - 您可以在那里指定任何内容的限制......

答案2

你用的tomcat哪个版本?请求数据在请求参数里吗?

如果不是最后一个(>6.0.35 或 >7.0.23),那么可能是因为 JVM 存在哈希碰撞漏洞(请参阅CVE-2012-0022)。

从 6.0.34 和 7.0.23 开始,已通过添加最大参数数量到连接器(默认为 10000)。

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

相关内容