最近的 Apache DOS 公告 - 应用 SetEnvIf/RequestHeader 解决方法时出现问题

最近的 Apache DOS 公告 - 应用 SetEnvIf/RequestHeader 解决方法时出现问题

因此,此建议的缓解措施之一是:

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’,可能是拼写错误或由服务器配置中未包含的模块定义”

SetEvnIf 模块似乎已加载。

那个参数有什么问题?

版本是 Apache/2.2.14 。

该通报的链接为:http://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/browser

此外,Tomcat 会受到此影响吗?

蒂娅!

答案1

RequestHeader需要您加载mod_headers

答案2

根据 DerfK 的回答,您需要加载 mod_headers - a la

LoadModule headers_module modules/mod_headers.so

在调用 RequestHeader 之前,在您的配置文件中

相关内容