Este guia vai te mostrar como bloquear requisições do seu site se elas vierem de determinado User-Agent. Isso pode ser muito útil para se defender de um ataque DDoS através do pingback no WordPress ou para bloquear outras requisições indesejadas.
Levando em consideração que o .htaccess já está habilitado no seu servidor (está, na maioria dos servidores Apache), adicione o seguinte trecho próximo ao topo para bloquear este user-agent de acessar o seu site.
$ cat .htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^WordPress [NC]
RewriteRule .* - [F,L]
</IfModule>
O exemplo acima vai bloquear qualquer requisição que tenha um User-Agent que comece com (o modificador regex ^) “WordPress”. Usei esse exemplo em particular para defender contra um ataque pingback no WordPress, no qual antigas versões do CMS são levadas a atacar um único alvo.
Se você quiser bloquear múltiplos user-agents em htaccess, você pode 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 todas as requisições com um user-agent que comece com WordPress ou ApacheBench.
De forma alternativa, você pode usar um bloqueio SetEnvIfNoCase, que define um meio ambiente variável se a condição descrevida é encontrada. 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 vai negar acesso para todos que tiverem um user-agent que tenha SQLMap, WordPress ou ApacheBench na string. É case-sensitive, e o User-Agent não precisa começar com a mesma string, porque não tem o modificador ^.
***
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/




