Banco de Dados

2 dez, 2015

Block User-Agent em htaccess para Webserver Apache

Publicidade

Este guia vai te mostrar como bloquear as solicitações para o seu site caso elas apareçam com um certo User-Agent. Isso pode ser muito útil para se defender de um ataque DDoS no WordPress ou bloquear outras solicitações indesejadas.

Assumindo que o .htaccess já está ativado no seu servidor (ele está, na maioria dos servidores que rodam o Apache), adicione o seguinte código próximo ao topo para não permitir que esse user-agent acesse o seu site.

$ cat .htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^WordPress [NC]
  RewriteRule .* - [F,L]
</IfModule>

O exemplo acima irá bloquear qualquer solicitação que tiver um User-Agent que comece com (o modificador regex ^) “WordPress”. Eu usei esse exemplo em particular para me defender contra um ataque DDoS no WordPress, no qual as versões antigas do WordPress são aliciadas para atacar um único alvo.

Se você deseja bloquear vários User-Agents em htaccess, é possível combiná-los em uma única linha como esta.

$ cat .htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} ^(WordPress|ApacheBench) [NC]
  RewriteRule .* - [F,L]
</IfModule>

O exemplo acima bloqueia todos os pedidos com um User-Agent que começa com o WordPress ou ApacheBench.

Como alternativa, você pode usar um bloqueio SetEnvIfNoCase, que define uma variável de ambiente caso a condição descrita seja atendida. Isso pode ser útil se, por alguma razão, mod_rewrite não estiver disponível.

$ cat .htaccess
<IfModule mod_setenvif.c>
  SetEnvIfNoCase User-Agent (sqlmap|wordpress|apachebench) bad_user_agents

  Order Allow,Deny
  Allow from all
  Deny from env=bad_user_agents
</IfModule>

O exemplo acima irá negar o acesso a todos que possuírem um User-Agent que tiver SQLMap, WordPress ou ApacheBench na string. E não é case sensitive e o User-Agent não tem que começar com essa string, porque lhe falta o modificador ^.

Caso tenha gostado deste conteúdo, você pode me ajudar a espalhar a consciência, compartilhando-o na rede social de sua escolha. Obrigado!

***

Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/block-user-agent-in-htaccess-for-apache-webserver/