Apache : Bloqueando métodos HTTP não utilizados

Neste post será apresentado como configurar o bloqueio de métodos que muitas vezes não são utilizados e são considerados inseguros .

A requisição será re-escrita para o status 405 (Método não permitido) caso seja diferente de um método permitido (HEAD, GET e POST).

Captura de Tela 2016-06-04 às 10.37.43

1) Ambiente :

Será utilizado o Apache do repositório no RHEL 7 para o lab .

yum install httpd -y 

No link abaixo tem um versão pré compilada nos modos prefork e worker

http://fajlinux.com.br/linux/apache-2-4-12-pacote-compilado/

2) Regra de Rewrite :

Em meu teste adicionei a regra abaixo no /etc/httpd/conf/httpd.conf , porém poderia ser também aplicado em um arquivo de virtual host.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} !ˆ(GET|POST|HEAD)
RewriteRule .* - [R=405,L]

3) Validando a solução :

curl -X PUT http://localhost

Teste do método não permitido

Captura de Tela 2016-06-04 às 10.42.15

Teste do método permitido

Captura de Tela 2016-06-04 às 10.43.13