Назад | Перейти на главную страницу

Ограничение HTTP-методов в Apache2

У меня установлен Apache по умолчанию на Ubuntu 10.04.

Я использую следующие 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> который 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.

Вся эта информация, как правило, подразумевает, что то, что вы хотите достичь, будет невозможно только с помощью изменений конфигурации.