Ubuntu

在 Apache2 中限制 HTTP 方法

  • July 18, 2011

我在 Ubuntu 10.04 上有一個預設的 Apache 安裝。

我使用以下Nmap掃描來確定可用的 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 掃描仍然列印相同的結果。

有誰知道我在這裡想念什麼?

文件<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.

這些資訊往往強烈暗示您希望僅通過配置更改來完成是不可能的。

引用自:https://serverfault.com/questions/291485