Limite de VERBOS HTTP no Apache2

4

Estou tentando limitar o uso de determinados verbos HTTP no meu site. Eu inseri o seguinte no meu arquivo de configuração VirtualHost dentro do elemento Directory:

<Limit GET POST HEAD>
 Allow from all
</Limit>
<Limit PUT DELETE OPTIONS>
 Deny from all
</Limit>

Isso pareceu funcionar, mas com resultados inesperados:

Eu executei os seguintes comandos telnet / HTTP antes e depois dessa alteração,

open server 80
OPTIONS server/abs_path HTTP/1.1
User-Agent: Telnet/1.0
Host: server

antes da alteração, recebi uma resposta bem-sucedida com os cabeçalhos permitidos.

Após a alteração, no entanto, eu esperava receber uma resposta 405 'Método não permitido', mas recebi uma resposta 403 'Acesso Proibido'.

O que eu preciso mudar no apache para retornar a resposta HTTP 405?

Muito obrigado

    
por user72295 26.02.2011 / 12:32

1 resposta

4

Após três horas de revisão dos documentos e testes do apache, descobri que posso usar o mod_rewrite para responder corretamente aos métodos HTTP indesejados:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !=GET
RewriteCond %{REQUEST_METHOD} !=POST 
RewriteRule .* /error/405.html [R=405,L] 
    
por 26.02.2011 / 15:52