0 Compartilhamentos 755 Views 1 Comments

Bloqueando robôs do seu site

Ser dono de site é padecer no paraíso. Apesar de todas as vantagens de se ter uma presença digital na internet, é um trabalho sem fim para se manter atualizado com as práticas de SEO, lutar contra os erros no seu próprio código, lutar contra os bugs nas ferramentas utilizadas, proteger servidores contra ações de hackers e, dependendo do caso, ainda ter que produzir o conteúdo.

É a sua vida? Então não se esqueça de acrescentar mais uma dor de cabeça na sua rotina: robôs maliciosos. Afinal de contas, nem todo robô que visita seu site é bonzinho como o do Google.

Através de sistemas automatizados, é possível enviar spam para seu site, coletar informações, roubar conteúdo, prejudicar sua banda de dados, derrubar o servidor com excesso de solicitações. Tudo isso com o mínimo de intervenção humana. Haja café e paciência para sobreviver a esses robôs.

Felizmente, também é possível automatizar suas defesas e bloquear a maioria desses inconvenientes, amplificar sua segurança e melhorar, por consequência, a experiência de seus usuários.

Bloqueando robôs usando plugins

O WordPress veio para facilitar a vida dos webmasters e foi por isso que se tornou a plataforma de CMS mais popular no mercado. No rastro da popularidade vieram os plugins, que ajudaram a transformar o WordPress em um ecossistema ainda melhor e mais popular.

Existe plugin para tudo na plataforma, inclusive para bloquear robôs mal-intencionados. Recomendamos duas sugestões gratuitas que já resolvem muitos pepinos, mas que também contam com versões pagas para quem quiser melhorar seu arsenal nessa guerra:

Blackhole for Bad Bots

A ideia desse plugin é simples, mas genial: ele cria uma armadilha para identificar robôs que se comportam mal. Por definição, o arquivo robots.txt é um acordo entre o administrador do site e robôs da internet e um não pode ludibriar o outro. Esse plugin adiciona um link secreto no seu site, proíbe o acesso a ele através do robots.txt e depois bloqueia e bane todos os agentes que desobedecerem a regra.

BBQ: Block Bad Queries

Para bloquear requisições automatizadas no WordPress, esse plugin ajuda a resolver e não se limita a impedir a ação de robôs, mas também oferece proteção contra IPs específicos, referers e outras origens que podem estar saturando a conexão do seu site. O plugin é leve e rápido, além de dispensar configurações mais elaboradas. Você pode até esquecer que ele está ali, mas o plugin irá continuar protegendo seu servidor.

Bloqueando robôs no braço com .htaccess

Embora o uso de plugins seja uma saída bastante prática, ela pode não ser a mais adequada para suas habilidades, seu nível de interesse em bloquear robôs ou mesmo as limitações do seu servidor. A bem de verdade, plugins exigem (além do WordPress, é claro) processamento do servidor, arquivos PHP, banco de dados e um grau de complexidade nos bastidores que pode se tornar uma brecha de segurança no futuro.

A melhor solução para quem tem tempo e não tem medo de sujar as mãos é mexer direto no arquivo .htaccess. Bloquear atividades irregulares nesse arquivo permite uma resposta direta a nível de servidor, no instante em que o robô e o servidor estabelecem uma conexão, sem precisar interagir com nenhum outro arquivo. Em contrapartida, é uma solução que exige cuidado e que pode gerar consequências desagradáveis em caso de erro. Por via das dúvidas, tenha sempre um backup preparado do .htaccess.

Para esses métodos funcionarem, também é fundamental conhecer bem que requisições ou acessos se está bloqueando, para evitar falhas. Se, por um lado, você está evitando a abordagem genérica de um plugin, em troca de um pente fino, por outro lado, você passa a ser o responsável por identificar os agentes maliciosos. Uma análise apurada dos logs do servidor podem fornecer pistas da visita de robôs que precisam ser bloqueados.

Bloqueio por Request URI

Quando um determinado site ou endereço na internet está enviando requisições de forma insistente, algo está errado. É um possível sinal de um scrapper, um script ou serviço que está visitando seu site continuamente para copiar conteúdo. Pode ser também qualquer outra atividade automatizada, mas a verdade é que, se você não está oferecendo uma API ou não possui um serviço público para outros, não há um motivo válido para um site externo estar consultando de forma automática o seu, certo?

Você pode bloquear o site externo a partir do seu endereço ou parte do seu endereço usando regex e .htaccess. É importante frisar que, se você não tomar cuidado com a expressão ou parte do endereço, você pode bloquear acessos legítimos…

Então, vamos supor que os endereços abaixo estão aparecendo sistematicamente em seus logs. Como bloquear?

  • http://www.robomalvado.com.br/golpe/scripts/?scrap=123
  • http://www.robomalvado.com.br/outro/golpe/scripts/?scrap=123456
  • http://www.robomalvado.com.br/outro/golpe/pra-valer/scripts/?scrap=123456789

Você precisa primeiro identificar os padrões e escolher o mais adequado para bloquear. Por exemplo, “/scripts/” costuma ser uma parte muito comum na internet e você não vai querer bloquear seu uso legítimo. Então, vamos tentar o subdiretório “/golpe/”.

Você pode usar:

Se, no futuro, surgirem outros padrões, você pode ir adicionando a sua regra no .htacess. Vamos imaginar que outros robôs estejam sendo acionados de um subdiretório “/scam/”. Então, teríamos:

Bloqueio por User-Agent

User-Agent é tipo o RG do sistema que está tentando acessar seu site. Navegadores enviam essa informação e bots também. Por definição, bots maliciosos nem deveriam enviar uma informação legítima, mas muitos fazem isso. GrabNet, Grafula, GetRight, NetSpider e outros são ferramentas que podem ser utilizadas para copiar informações de sites, por exemplo, com fins absolutamente inocentes (como um usuário tentando “otimizar” sua experiência de navegação ou salvar imagens em massa). Entretanto, você, como webmaster, pode bloquear esses mecanismos.

A lista de robôs suspeitos é grande. Identifique os User-Agents que não são navegadores e mais estão consumindo recursos em seus logs e bloqueie-os no .htacess:

Bloqueio por Referrer

Mas, vamos supor que você queira bloquear por completo o domínio original robomalvado.com.br. Como fazer? Use:

Cada Referrer bloqueado exige uma linha adicional de RewriteCond no padrão acima.

Bloqueio por endereço IP

Esse é um recurso muito útil quando se deseja bloquear o acesso de um usuário em particular. Por outro lado, é um bloqueio muito fácil de burlar com proxies, redirecionamentos, camuflagem e outros métodos que agentes maliciosos podem empregar.

Ainda assim, fica o registro, se você estiver pensando em travar um alvo específico, com pouco conhecimento técnico. Nesse cenário, poderíamos ter, por exemplo, um visitante que insiste em publicar spam nos seus comentários ou atacar outros usuários com ofensa. Há formas melhores de se lidar com esse problema (banimento, aviso), mas podemos impedir por completo o acesso do seu IP. A questão aqui é que, se o IP do alvo for dinâmico (como são a maioria dos acessos de usuários comuns por provedores), o endereço dele pode ser alocado para outra pessoa no futuro, que seria injustamente afetada.

Considerando-se os aspectos negativos, você poderia bloquear um endereço IP da seguinte forma:

O código acima bloquearia o IP 123.456.789.000. Perceba que os pontos são precedidos de um “\” para evitar que sejam interpretados como caracteres do tipo “coringa”.

Bloqueio por Querystring

Existem alguns casos bastante específicos de tentativas que podem visar alterar configurações do seu servidor via querystring. Nesse caso, os seguintes comandos são uma boa proteção:

Carregando...

Você pode se interessar

Por que eu decidi não migrar para o Windows 11 agora
Artigos
119 visualizações
Artigos
119 visualizações

Por que eu decidi não migrar para o Windows 11 agora

Carlos L. A. da Silva - 19 de outubro de 2021

O novo sistema operacional da Microsoft está entre nós, mas talvez não seja uma boa ideia pular de cabeça.

Enumerando e analisando mais de 40 implementações de JavaScript (que não são V8)
Artigos
246 visualizações
Artigos
246 visualizações

Enumerando e analisando mais de 40 implementações de JavaScript (que não são V8)

Carlos L. A. da Silva - 6 de outubro de 2021

V8 é o interpretador JavaScript, também chamado de máquina virtual Javascript, desenvolvido pela Google e utilizado em seu navegador Google Chrome. Com o peso de seus criadores e a quase onipresença do navegador, foi apenas uma questão de tempo para essa implementação do JavaScritp se tornar dominante no mercado. Entretanto, um bom desenvolvedor sabe que […]

Sir Clive Sinclair, o homem adiantado no tempo
Artigos
428 visualizações
Artigos
428 visualizações

Sir Clive Sinclair, o homem adiantado no tempo

Carlos L. A. da Silva - 18 de setembro de 2021

O inglês Clive Marles Sinclair nasceu de uma família de engenheiros. Seu avô foi engenheiro, assim como o seu pai. Com um talento natural pela Matemática e um forte interesse em eletrônica, ele se tornaria uma página importante da popularização da computação em diversas partes do mundo, construindo um legado que se perpetuará por anos […]

One Response

Deixe uma Resposta para Carlos Fontes Cancelar resposta

Your email address will not be published.

Mais publicações

A cibersegurança por trás das vacinas
Artigos
529 visualizações
529 visualizações

A cibersegurança por trás das vacinas

Carlos L. A. da Silva - 7 de setembro de 2021
Top 25 comandos do Git
Artigos
669 visualizações
669 visualizações

Top 25 comandos do Git

Carlos L. A. da Silva - 28 de agosto de 2021
Dez anos de Kotlin: origens e futuro
Artigos
723 visualizações
723 visualizações

Dez anos de Kotlin: origens e futuro

Carlos L. A. da Silva - 20 de agosto de 2021