限制 Apache2 中的 HTTP 方法

限制 Apache2 中的 HTTP 方法

我在 Ubuntu 10.04 上有一个默认的 Apache 安装。

我使用以下网络地图扫描以确定可用的 Apache 方法:

nmap -p80 --script=http-methods 192.168.1.66

结果是:

http-methods: GET HEAD POST OPTIONS

我正在尝试消除 HEAD 方法。因此/etc/apache2/apache.conf我添加了以下内容:

<Directory "/var/www/*">
<LimitExcept GET POST OPTIONS>
Deny from all
</LimitExcept>
...
</Directory>

然后我重启了网络服务器。然而 nmap 扫描仍然输出相同的结果。

有谁知道我在这里遗漏了什么?

答案1

文档<Limit>明确指出:

If GET is used it will also restrict HEAD requests

这非常强烈地暗示了,对于<Limit><LimitExcept>而言,GETHEAD被视为相同。 适用于 的限制GET将适用于HEAD,因此,如果GET不受限制,那么HEAD也将不受限制。

此外,HTTP/1.1 RFC 2616明确指出(第 9.4 节):

The HEAD method is identical to GET except that the server MUST NOT return
a message-body in the response.

GET进一步明确和之间的直接关系HEAD

最后澄清这一点的信息也来自RFC 2616(第 5.1.1 节):

The methods GET and HEAD MUST be supported by all general-purpose servers.

这些信息综合起来强烈暗示了,仅靠配置更改是无法实现您所希望实现的目标的。

相关内容