我在 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>
而言,GET
和HEAD
被视为相同。 适用于 的限制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.
这些信息综合起来强烈暗示了,仅靠配置更改是无法实现您所希望实现的目标的。