所以这个build议的一个缓解措施是:
1)使用SetEnvIf或mod_rewrite来检测大量的范围,然后忽略Range:标头或拒绝请求。
选项1 🙁 Apache 2.0和2.2)
# Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range # optional logging. CustomLog logs/range-CVE-2011-3192.log common env=bad-range
现在,当我将其添加到我的httpd.conf中时:
<IfModule mod_setenvif.c> SetEnvIf Range (,.*?){5,} bad-range=1 RequestHeader unset Range env=bad-range </IfModule>
重新启动Apache时出现此错误:
“无效的命令'RequestHeader',可能拼错或由未包含在服务器configuration中的模块定义”
SetEvnIf模块似乎被加载。
这个参数有什么问题?
版本是Apache / 2.2.14。
咨询的链接是: http : //mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/browser
还有,Tomcat会不会受到这个?
TIA!
RequestHeader要求你加载mod_headers
根据DerfK的回答,你需要加载mod_headers – 一个拉
LoadModule headers_module modules/mod_headers.so
在调用RequestHeader之前的conf文件中