Apache 2.2 中硬编码的 HTTP 请求标头限制

Apache 2.2 中硬编码的 HTTP 请求标头限制

我在 SF 上查找了与此相关的其他一些问题,它们都围绕着将最大限制设置为LimitRequestFieldSize8K LimitRequestLine

httpd 的文档确认了这个限制,但是没有列出需要修复的值。

我尝试增加它,但没有用。减少它也没有用。我找到的每个来源都表明存在最大限制。

为了检查标题的长度,我发出了这个命令:

curl -v -H "CustomHeader: `printf '1%.0s' {1..n}`" hostname

我在 RHEL 6.3 VM 上安装了 apache2,并尝试了两个指令的各种值(在 中指定/etc/httpd/conf/httpd.conf)。

作为参考,apache2的版本:

Name        : httpd
Arch        : x86_64
Version     : 2.2.15
Release     : 15.el6_2.1

现在问题是

我知道我不能将它增加到超过 8K(Redhat 的人似乎没有触及限制),但为什么我不能减少它?无论我指定什么值,如果 n 大于 8K,apache 都会返回错误。

答案1

文档中有一个警告

警告
当使用基于名称的虚拟主机时,此指令的值取自连接映射到的 NameVirtualHost 的默认(首先列出的)虚拟主机。

从这句话中无法清楚看出,如果httpd.conf您使用基于名称的虚拟主机,是否会忽略 中的任何值。您是否使用基于名称的虚拟主机,并且是否尝试过将此指令放在第一个中?

相关内容