我有使用嵌入式tomcat的spring启动应用程序,我想设置mod_reqtimeout
以防止慢速http dos攻击。如何在弹簧启动配置中设置或初始化此模块?
acunetix显示此警告:
您的网络服务器容易受到慢速HTTP DoS(拒绝服务)攻击。 Slowloris和慢速HTTP POST DoS攻击依赖于这样一个事实,即HTTP协议在设计之前需要服务器在处理之前完全接收请求。如果HTTP请求未完成,或者传输速率非常低,则服务器会使其资源忙于等待其余数据。如果服务器保持太多资源忙,则会产生拒绝服务。
当我用谷歌搜索这个警告时,我发现应该设置mod_reqtimeout
,如下所示:
答案 0 :(得分:0)
我通过注入下面的bean并设置连接器的连接超时来解决问题:
@Bean
public EmbeddedServletContainerFactory servletContainerFactory() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.addConnectorCustomizers(connector ->
((AbstractProtocol) connector.getProtocolHandler()).setConnectionTimeout(8000));
return factory;
}
答案 1 :(得分:0)
在Spring Boot 1.4或更高版本中,可以使用以下命令在应用程序属性中进行配置:
set hive.variable.substitute=true;
SET run_dt = '2012-09-16';
连接器在关闭连接之前等待另一个HTTP请求的时间。如果未设置,则使用连接器的特定于容器的默认值。使用值-1表示没有超时(即无限)。
来源:https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html