整改建议
1.中断使用URL不支持HTTP方法访问的会话
2.限制HTTP头及包长至一个合理数值
3.设置一个绝对的会话超时时间
4.服务器支持backlog的情况下,需设置一个合理的大小
5.设置一个最小的入站数据传输速率
渗透状况:
安全扫描+手工测试。
漏洞原理:
扫描发现Web
服务器或应用程序服务器存在Slow HTTP Denial of Service Attack漏洞。
漏洞危害:
当恶意攻击者以很低的速率发起HTTP请求,使得服务端长期保持连接,这样使得服务端容易造成占用所有可用连接,导致拒绝服务
-----------------------------------------------------------------------
尝试解决:
1.Just in case : for a plain Tomcat the corresponding solution is to add :
org.apache.tomcat.util.http.Parameters.MAX_COUNT=10000
in catalina.properties
2.
maxHttpHeaderSize="8192" 设置限制HTTP头及包长
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" disableUploadTimeout="true" />
3 [机房建议]
tomcat配置文件server.xml 中参考以下设置(注意相应的端口,需重启服务):
${tomcat-home}/conf/server.xml 中更改Connector的实现,使用nio(非阻塞io)实现替换默认的bio(阻塞io)实现,可以提高并发连接的数量,参考下面的:
<Connector port="8080" protocol="HTTP/1.1"
"
redirectPort="8443" />
改为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="8000"
redirectPort="8443" />
把connectionTimeout配置项值改成8000左右(即8秒)
<Connector port="8080" protocol="HTTP/1.1"
"
redirectPort="8443" />
改为
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="8000"
redirectPort="8443" />
把connectionTimeout配置项值改成8000左右(即8秒)
4 stackflow建议
使用apahce + tomcat
利用Apache进行阻挡.