Limitando métodos HTTP no Apache2

1

Eu tenho uma instalação padrão do Apache no Ubuntu 10.04.

Eu uso o seguinte Nmap para determinar os métodos disponíveis do Apache:

nmap -p80 --script=http-methods 192.168.1.66

O resultado é:

http-methods: GET HEAD POST OPTIONS

Estou tentando eliminar o método HEAD. Então, em /etc/apache2/apache.conf , adicionei o seguinte:

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

Eu reiniciei o servidor da web. No entanto, o scan nmap ainda imprime os mesmos resultados.

Alguém sabe o que está perdendo aqui?

    
por lisa1987 18.07.2011 / 14:43

1 resposta

3

A documentação para <Limit> declara explicitamente:

If GET is used it will also restrict HEAD requests

Isso implica muito strongmente que, para os propósitos de <Limit> e <LimitExcept> , que GET e HEAD sejam tratados da mesma forma. Restrições aplicadas a GET serão aplicadas a HEAD e, portanto, se GET for irrestrito, então HEAD também será irrestrito.

Além disso, o HTTP/1.1 RFC 2616 declara explicitamente (seção 9.4):

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

Esclarecendo ainda mais a relação direta entre GET e HEAD .

A informação final para esclarecer isso, também de RFC 2616 , (seção 5.1.1):

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

Toda esta informação tende a implicar strongmente que o que você deseja realizar não será possível apenas através de alterações de configuração.

    
por 18.07.2011 / 17:23