Introdução: quando seu site vira banco de dados de outra pessoa

Imagine: você passou seis meses montando um catálogo, conferindo preços, escrevendo descrições de produtos, configurando filtros. Aí você percebe que o concorrente atualiza os preços vinte minutos depois dos seus, e sites clones com suas descrições palavra por palavra aparecem na busca. Enquanto isso, o servidor geme sob a carga, a conta de hospedagem cresce, e a análise mostra picos estranhos de tráfego à noite, vindos de regiões onde você não tem nenhum cliente. Soa familiar? Isso é scraping. E não é uma ameaça hipotética, é realidade diária para qualquer site que tenha algo de valor.

Segundo estimativas de relatórios do setor dos últimos anos, o tráfego automatizado representa cerca de metade de todas as requisições na internet, e aproximadamente um terço do total vem de bots claramente maliciosos. Para e-commerce, classificados, projetos de viagem e plataformas de conteúdo, a proporção costuma ser ainda maior. E a tendência de 2026 é clara: aos scrapers clássicos somaram-se agentes baseados em grandes modelos de linguagem, que navegam pelos sites tão bem quanto humanos, leem conteúdo e tomam decisões. A fronteira entre visitante "real" e "automatizado" está se dissolvendo diante dos nossos olhos.

O público do mobileproxy.space conhece esse tema dos dois lados. Marketeiros e afiliados coletam dados eles mesmos, desenvolvedores escrevem coletores, donos de negócio monitoram concorrentes. Mas cada um de vocês certamente tem um site próprio, landing page, catálogo ou API que alguém já está extraindo neste exato momento. Por isso, neste artigo, mudamos a ótica: hoje você está sendo raspado, e vamos analisar como montar uma proteção antibot que funcione, sem atrapalhar a vida dos usuários de verdade.

Um aviso importante. Não comparamos fornecedores nem montamos ranking de serviços comerciais — há um material específico no blog para isso. Aqui o foco é implementação: quais camadas de proteção existem, em que ordem aplicá-las, como medir o efeito e quais armadilhas esperam em cada etapa. O que você vai levar daqui:

  • entender como os sistemas antibot modernos "enxergam" o visitante e por que bloquear por IP deixou de ser solução faz tempo;
  • metodologia de diagnóstico: como descobrir em um dia quem e como está raspando você;
  • três linhas de defesa com instruções passo a passo — do rate limiting no servidor até análise comportamental e armadilhas nos dados;
  • um framework de implementação gradual sem derrubar a conversão;
  • checklists, lista de ferramentas e análise de casos reais com números.

Acomode-se. O material é extenso, mas foi pensado como um favorito de trabalho, para o qual você vai voltar em cada etapa do projeto.

Fundamentos: o que é proteção antibot e do que ela protege

Bots são de vários tipos, e nem todos precisam ser bloqueados

A primeira coisa a aceitar: bot não é palavrão. Robôs de busca indexam suas páginas e trazem tráfego. O monitoramento de disponibilidade verifica se o site está no ar. Sistemas de pagamento disparam webhooks. Agregadores parceiros buscam feeds por contrato. Tudo isso é tráfego automatizado que você quer e que te beneficia. A tarefa da proteção antibot é não destruir a automação como fenômeno, mas separar requisições úteis e permitidas das prejudiciais, e tornar as prejudiciais economicamente irrelevantes.

De forma geral, os bots indesejados se dividem em algumas categorias:

  • Scrapers de conteúdo e preços — extraem catálogo, descrições, estoque, preços, avaliações. O protagonista deste artigo.
  • Agregadores sem contrato — pegam seus dados e vendem acesso a eles para terceiros.
  • Bots de credential stuffing — atacam formulários de login testando pares usuário-senha vazados.
  • Scalpers e "snipers" de estoque — compram produto em falta ou reservam horários em frações de segundo.
  • Bots de spam e infladores — poluem formulários, criam contas falsas, estragam métricas.
  • Crawlers de modelos de IA — coletam texto para treinamento ou para respostas em tempo real. A permissibilidade deles cada negócio decide por si.

Repare: o scraping em si raramente quebra o site. Mas ele cria carga parasita (às vezes até 60-80% de todas as requisições ao catálogo), distorce a análise, esgota limites de APIs externas que você chama na renderização da página e, principalmente, tira de você a vantagem competitiva pela qual você coletou esses dados.

Como a proteção contra scraping difere da proteção contra DDoS

Muitos donos de site tratam essas tarefas como equivalentes e se surpreendem quando o filtro anti-DDoS deixa o scraper passar. A diferença é fundamental. DDoS é um ataque por volume: o objetivo do atacante é esgotar o recurso do canal ou do servidor. Esse tipo de ataque é fácil de notar pelas métricas, e é filtrado na camada de rede. O scraper, ao contrário, tenta ser invisível: espalha as requisições ao longo do tempo, distribui por dezenas de milhares de endereços, imita o navegador e acessa as mesmas URLs que pessoas reais. O filtro anti-DDoS clássico vê tráfego uniforme e "saudável" e deixa passar. Por isso a proteção contra bots exige sinais completamente diferentes — vamos falar deles na próxima seção.

Três linhas de defesa: o modelo que vamos usar

Para não se afogar em tecnologias, é útil imaginar a proteção antibot como três camadas concêntricas. A analogia é a fortaleza medieval: fosso e muralha externa, portão com guarda e, por fim, os aposentos internos, onde mesmo o visitante que passou pelo portão fica sob observação.

  1. Camada de rede e servidor. Limitação de frequência de requisições, filtragem por reputação de redes, WAF, regras básicas por cabeçalhos. Barato, rápido, corta os bots mais primitivos.
  2. Camada de verificação do cliente. Desafios JavaScript, análise de fingerprints TLS e de navegador, captcha nos pontos certos, tarefas de proof of work. Corta scripts sem navegador e ferramentas headless mal configuradas.
  3. Camada comportamental e de proteção de dados. Análise de sequência de ações, scoring de sessões, armadilhas honeypot, ofuscação e marcas d'água nos próprios dados. Funciona contra bots avançados que passaram pelos dois primeiros círculos.

A ideia-chave à qual vamos voltar sempre: nenhuma camada é suficiente sozinha. A força está no fato de o bot precisar contornar todas as três ao mesmo tempo, e cada barreira adicional encarece seu trabalho. Quando raspar você fica mais caro do que comprar dados legalmente ou coletá-los de outra forma, o scraping acaba. Isso é economia, não magia.

Termos básicos que vão aparecer daqui pra frente

  • Rate limiting — limitação da quantidade de requisições de uma fonte por unidade de tempo.
  • WAF (Web Application Firewall) — firewall de camada de aplicação que filtra requisições HTTP por regras.
  • Fingerprint (impressão digital) — conjunto de características do cliente que permite reconhecer seu tipo ou instância específica.
  • Navegador headless — navegador completo sem interface gráfica, controlado por programa.
  • Challenge (desafio) — tarefa de verificação que o cliente precisa resolver para obter acesso.
  • False positive (falso positivo) — situação em que a proteção bloqueia um usuário real.
  • Honeypot — armadilha: elemento invisível para humanos, mas perceptível para clientes automatizados.

Mergulho profundo: como um sistema antibot moderno "enxerga" o visitante

Para implementar proteção com consciência, é preciso entender em quais sinais ela se baseia. Aqui começa a parte mais interessante: nos últimos cinco anos, o setor saiu de "banir IP" para scoring multicamadas, em que a decisão é tomada com base em centenas de atributos. Vamos analisar os principais grupos de sinais.

Sinais de rede e por que o IP não é mais o principal

Historicamente, o primeiro indício de bot era o endereço IP. Requisições de data center? Provavelmente script. Mil requisições de um mesmo endereço? Certeza de script. Essa abordagem ainda funciona contra scrapers preguiçosos, que acessam direto de servidores em nuvem, e vale aplicar. Mas ela tem duas limitações fundamentais.

Primeira: endereços residenciais e móveis. O público deste blog sabe melhor do que ninguém que, por trás de um IP móvel de operadora, graças ao NAT, podem estar simultaneamente milhares de assinantes reais. Bloqueando esse endereço por causa de um cliente suspeito, você corta um bairro inteiro do seu site. As bases de reputação para redes móveis são praticamente inúteis: o endereço que ontem era de um scraper hoje pertence ao seu comprador. É por isso que uma proteção antibot bem-feita usa o IP apenas como um sinal fraco, e não como base para uma sentença.

Segunda: distribuição. O scraper moderno rotaciona endereços de modo que cada um receba 2-3 requisições por hora. O limiar de rate limiting suficiente para cortar esse cliente vai inevitavelmente atingir pessoas reais que abrem dez abas do catálogo.

O que continua útil na camada de rede? Indicadores de ASN (rede pertencente a provedor de hospedagem), anomalias geográficas (tráfego de país onde você não atua), divergência entre geolocalização do IP e idioma do navegador, estatísticas por sub-rede em vez de endereços individuais.

Fingerprints de camada de transporte e protocolo

Aqui está um sinal que muitos subestimam. Quando o cliente estabelece uma conexão segura, ele envia uma mensagem de saudação TLS com a lista de cifras suportadas, extensões e sua ordem. Esse conjunto depende da biblioteca que o cliente usa. O Chrome no Windows forma uma saudação, o Firefox outra, e uma biblioteca Python para requisições HTTP uma terceira, completamente diferente de navegador. O hash desse conjunto é chamado de fingerprint TLS (esquemas comuns — JA3 e o mais novo JA4).

A mágica é que o scraper pode falsificar o cabeçalho User-Agent em um segundo, mas falsificar o fingerprint TLS para que coincida com o navegador declarado é bem mais difícil. Se o cliente se apresenta como Chrome recente e sua saudação TLS corresponde a uma biblioteca de console, temos um script. Fingerprints análogos existem para HTTP/2 (ordem e valores dos quadros SETTINGS, prioridades de fluxo) e HTTP/3. A combinação "navegador declarado + TLS + HTTP/2" já dá uma precisão razoável de classificação sem uma linha de JavaScript.

Fingerprint de navegador e indícios de automação

Quando o cliente executa JavaScript, o campo de análise se amplia muito. O script de proteção coleta centenas de parâmetros: resolução de tela e sua proporção em relação ao tamanho da janela, lista de fontes, resultado da renderização gráfica via Canvas e WebGL, características do AudioContext, fuso horário, configurações de idioma, presença e comportamento de objetos específicos do ambiente. Além disso, verificam-se indícios de automação: propriedades que o modo headless deixa no ambiente, divergências entre a plataforma declarada e os recursos reais, valores "perfeitos demais" onde um dispositivo real sempre tem ruído.

É importante entender: o objetivo não é identificar inequivocamente uma pessoa (isso é juridicamente sensível e tecnicamente não confiável), mas encontrar contradições internas. Um iPhone real não reporta 32 núcleos lógicos de processador. Um Chrome real no Android não tem resolução de 1920 por 1080 sem entrada por toque. Cada contradição é um ponto a mais no score de suspeita.

Sinais comportamentais

A classe de indícios mais resistente a falsificação é o comportamento ao longo do tempo. Uma pessoa move o cursor com microtremores e acelerações, rola a página de forma irregular, faz pausas para ler, clica não exatamente no centro do botão. Uma pessoa entra na home, vai para uma categoria, olha três ou quatro produtos, volta. O bot abre quinhentos cards de produto em sequência crescente de ID, cada um exatamente a cada 1,2 segundo, nunca carrega imagens e nunca solicita CSS. Mesmo os scrapers mais avançados em navegadores controlados se entregam pela estrutura da sessão: é impossível extrair o catálogo inteiro se comportando como um único comprador.

Scoring em vez de decisão preto no branco

Sistemas modernos não respondem à pergunta "bot ou humano" de forma binária. Eles atribuem a cada requisição ou sessão um score de risco, e a partir daí aplicam uma política: risco baixo — deixar passar; médio — mostrar um desafio invisível ou desacelerar a resposta; alto — captcha ou bloqueio; crítico — entregar dados plausíveis, mas distorcidos. Essa abordagem reduz drasticamente os falsos positivos: ao cliente duvidoso não se bate a porta na cara, dá-se a chance de provar que está vivo.

O que muda em 2026

Algumas tendências que já influenciam o desenho da proteção:

  • Agentes de IA como nova classe de clientes. Agentes baseados em modelos de linguagem controlam navegadores reais, leem páginas e se comportam quase como humanos. Parte deles é útil (traz compradores), parte são apenas scrapers mais espertos. Os sites terão que formular uma política explícita para esse tráfego.
  • Padronização da identificação "ética" de bots. Estão se desenvolvendo mecanismos em que um cliente automatizado legítimo comprova criptograficamente pertencer a uma empresa específica. Isso permite deixar robôs úteis passarem sem desafios.
  • Atestação de dispositivos e tokens de confiança. Sistemas operacionais e navegadores experimentam mecanismos que permitem ao site obter confirmação de "este é um dispositivo real com uma pessoa real" sem coletar fingerprints. No futuro, isso simplificará a proteção, mas por enquanto a cobertura é limitada.
  • Crescimento do HTTP/3 e criptografia de metadados. Parte dos sinais de rede habituais fica menos acessível, deslocando o foco para a análise comportamental.
  • Pressão regulatória sobre a coleta de dados de usuários. Fingerprints de navegador e armazenamento de sessões exigem atenção à legislação de proteção de dados pessoais. A proteção deve ser projetada para coletar o mínimo necessário.

A conclusão desta seção é simples e importante: uma proteção confiável contra scraping se baseia na combinação de sinais fracos, não em um único indício "de prata". Mantenha isso em mente ao partir para a prática.

Método 1. Diagnóstico: descubra quem e como está raspando você

Implementar proteção às cegas é o caminho certo para gastar orçamento e bloquear as pessoas erradas. Antes de implantar qualquer coisa, dedique um ou dois dias ao reconhecimento. A boa notícia: não são necessárias ferramentas caras, bastam os logs do servidor web e saber fazer as perguntas certas.

Passo 1. Reúna logs completos de um período representativo

No mínimo — sete dias, para capturar o ciclo semanal. Os logs devem conter: hora, IP, método e caminho da requisição, código de resposta, tamanho da resposta, User-Agent, Referer, tempo de processamento. Se o seu servidor web grava apenas o formato padrão, amplie. Para um projeto com milhões de requisições por dia, é prático exportar os logs direto para um banco analítico ou pelo menos para formato tabular.

Passo 2. Encontre anomalias na estrutura do tráfego

Faça as perguntas abaixo aos logs e registre as respostas — essa será sua linha de base.

  • Distribuição por hora. O tráfego real tem ciclo diário. Uma "prateleira" uniforme à noite ou um pico às 4 da manhã é o primeiro marcador.
  • Proporção de tipos de recurso. Quantas requisições a páginas HTML correspondem a uma requisição de CSS, JS e imagens? No navegador, essa proporção é de cerca de 1 para 10-30. No scraper — 1 para 0. Encontre endereços e sub-redes que solicitam apenas HTML ou apenas JSON.
  • Profundidade de navegação. Quem abre mais de 100 cards de produto por sessão? Quem percorre IDs em sequência, páginas de paginação, combinações de filtros?
  • Cabeçalhos. Versões antigas de navegador, User-Agent vazio ou de biblioteca, ausência de Accept-Language, mesmo User-Agent em milhares de endereços.
  • Códigos de resposta. 404 em massa para IDs inexistentes — indício de varredura. 429 ou 403 em massa — alguém já está batendo nos seus limites.
  • Sistemas autônomos. Agrupe IPs por ASN. Proporção de provedores de hospedagem no tráfego do catálogo acima de 5-10% — quase certamente bots.

Passo 3. Estime o prejuízo em dinheiro

Traduza as descobertas para a linguagem do negócio, senão a proteção não ganha orçamento. Calcule: proporção de requisições parasitas e seu custo em infraestrutura; carga sobre APIs pagas externas (câmbio, geocodificação, busca) gerada pelos bots; distorção da análise (sessões falsas prejudicam a atribuição de anúncios, e isso diz respeito direto aos marketeiros); lucro cessante por preços e conteúdo copiados. Mesmo uma estimativa aproximada do tipo "bots custam 180 mil reais por mês em infraestrutura e uma quantia desconhecida em posição competitiva" muda a conversa com a diretoria.

Passo 4. Monte armadilhas para confirmar hipóteses

Os logs mostram que alguém está lá, mas não mostram o que exatamente essa pessoa quer. Complemente a análise com reconhecimento ativo:

  • Registros canário. Adicione ao catálogo um produto inexistente com nome único, que não é indexado por buscadores e não aparece na navegação, mas é acessível por link direto a partir da paginação. O aparecimento desse nome em outro site é prova de scraping e indica a origem.
  • Links ocultos. Um link invisível para humanos (fora da tela, sem dimensões), mas presente no HTML. Uma pessoa nunca clicará nele. Cada clique é um bot. Não esqueça de fechá-lo para robôs de busca através de regras de exclusão.
  • Espaços únicos e pequenas variações. Pequenas particularidades únicas de formatação nas descrições, pelas quais depois se pode reconhecer o texto copiado.

Passo 5. Monte perfis de scrapers

O resultado do diagnóstico deve ser uma tabela de três a cinco perfis. Por exemplo: "Perfil A: script em nuvem sem JS, 40 mil requisições a cards durante a noite, User-Agent de Chrome antigo, uma sub-rede". "Perfil B: cliente distribuído em endereços residenciais, 2-3 requisições por endereço, executa JS, anda só pelo filtro de preço". "Perfil C: agregador, apresenta-se honestamente, busca o feed uma vez por dia". Para cada perfil, já fica claro qual camada de proteção vai detê-lo. O perfil A cai na primeira linha. O perfil B exigirá análise comportamental. Ao perfil C, talvez valha a pena oferecer uma API parceira — às vezes isso é mais vantajoso que a guerra.

Checklist de diagnóstico

  1. Logs de 7+ dias com conjunto completo de campos coletados.
  2. Distribuição de tráfego por hora e tipos de recurso construída.
  3. Top 20 sub-redes e ASNs por número de requisições a URLs "valiosas" identificados.
  4. Sessões com profundidade anômala e regularidade encontradas.
  5. Proporção de tráfego parasita e seu custo calculados.
  6. Registros canário e links ocultos posicionados.
  7. Perfis de scrapers formados, com indicação da camada de proteção alvo.
  8. Bots legítimos que não podem ser tocados definidos: buscadores, webhooks de pagamento, parceiros, monitoramento.

Método 2. Primeira linha: camada de servidor e rede

A primeira linha é a fundação. Ela não vai parar um scraper avançado, mas corta 50-70% dos bots primitivos literalmente em um dia de trabalho e quase de graça. Pular essa etapa em nome de soluções caras é erro: por que pagar pela análise de cada requisição se metade pode ser descartada com uma regra simples?

Limitação de frequência feita do jeito certo

Rate limiting é a ferramenta mais conhecida e a mais frequentemente mal configurada. Erro típico: um limite global por IP para o site inteiro. Resultado — ou o limite é frouxo demais e inútil, ou rígido demais e atinge escritórios, universidades e redes móveis com NAT. A abordagem correta são limites diferenciados:

  • Por tipo de recurso. Estáticos e página inicial — limites generosos. Cards de produto, resultados de busca, endpoints JSON do catálogo — bem mais rígidos. Formulários de login e cadastro — extremamente rígidos.
  • Por chave. Não só IP. Combine: IP + caminho, IP + User-Agent, cookie de sessão, para autenticados — identificador de conta. Para redes móveis, um limite por sub-rede /24 ou por ASN com limiar alto é melhor do que um limite rígido por endereço individual.
  • Por janelas de tempo. Duas janelas: curta (por exemplo, 20 requisições em 10 segundos — contra picos) e longa (por exemplo, 600 requisições a cards por hora — contra varredura lenta). O scraper lento, mas persistente, cai na segunda janela; a pessoa real, não.
  • Por tipo de reação. Exceder o limite não precisa significar bloqueio. Primeiro grau — atraso na resposta de 2-5 segundos. Segundo — código 429 com cabeçalho Retry-After. Terceiro — banimento temporário de 10-15 minutos. A escalada gradual quase não atinge pessoas e desacelera muito os bots.

Exemplo de configuração básica de zonas para um servidor web popular, que você adapta ao seu caso (valores ilustrativos):

limit_req_zone $binary_remote_addr zone=catalog_burst:20m rate=3r/s;limit_req_zone $binary_remote_addr zone=login:10m rate=10r/m;location /catalog/ { limit_req zone=catalog_burst burst=15 delay=8; }location /login { limit_req zone=login burst=3 nodelay; limit_req_status 429; }

Preste atenção ao parâmetro delay: ele permite atender parte do pico imediatamente e o restante com atraso, o que é confortável para quem abriu dez abas e desagradável para um script.

Filtragem por características de rede

Defina uma política para sistemas autônomos. Provedores de hospedagem e nuvens são a fonte da maioria dos scrapers primitivos. Bloqueio total nem sempre é apropriado (por ali também passam proxies corporativos e parte dos serviços legítimos), mas aplicar a eles limites rígidos e desafio JavaScript obrigatório é razoável. Para países onde você não faz negócio — o mesmo: não bloqueio, mas nível elevado de verificação. Lembre-se da abordagem "sinal fraco soma pontos", e não "um sinal decide tudo".

Regras no nível dos cabeçalhos

Algumas regras baratas, mas eficazes, para WAF ou configuração do servidor:

  • Rejeitar requisições com User-Agent vazio ou com assinaturas de bibliotecas HTTP conhecidas para URLs não-serviços. Integrações legítimas devem usar uma API dedicada com chave, não páginas públicas.
  • Exigir consistência de cabeçalhos: Chrome declarado sem os cabeçalhos característicos de client hints é suspeito.
  • Retornar código 404 ou 410 para formatos de URL obsoletos que os scrapers continuam acessando por mapas de site antigos.
  • Esconder versões de software de servidor e frameworks nos cabeçalhos — não para proteção contra scraping, mas para higiene geral.

Regras para robôs e política explícita

O arquivo de regras para robôs de busca não é meio de proteção — um bot malicioso o ignora. Mas ele é importante por dois motivos. Primeiro, permite autorizar explicitamente bots úteis e proibir explicitamente crawlers indesejados, inclusive coletores de dados para modelos de IA — operadores conscientes respeitam essas regras. Segundo, fixa sua posição: a combinação de regras técnicas e termos de uso do site torna a coleta não autorizada de dados juridicamente mais vulnerável para quem a pratica. Inclua obrigatoriamente no contrato de usuário a proibição de coleta automatizada sem autorização por escrito.

Cache como proteção

Um truque nada óbvio: cache agressivo de páginas "valiosas" na camada de CDN ou proxy reverso não impede o scraper de extrair dados, mas elimina a maior dor — carga na aplicação e no banco. Se o bot extrai o catálogo do cache, sua infraestrutura quase não sente. Não é vitória, mas é tempo ganho para construir as próximas linhas sem apagar incêndio.

Checklist da primeira linha

  1. Grupos de URLs com valores distintos definidos e limites próprios configurados para cada um.
  2. Duas janelas de limites implementadas: curta e longa.
  3. Reação ao excesso — escalada: atraso, 429, banimento temporário.
  4. Limites para redes móveis e residenciais suavizados ou calculados por sub-rede.
  5. ASNs de hospedagem e regiões não-alvo colocados em modo de verificação reforçada, não de banimento.
  6. Regras de cabeçalhos configuradas para cortar clientes de biblioteca.
  7. Política para robôs e proibição legal de coleta de dados redigidas.
  8. Cache de páginas caras habilitado.
  9. Exceções para buscadores, sistemas de pagamento e parceiros verificadas e documentadas.

Método 3. Segunda linha: verificação do cliente e desafios

A primeira linha atua por características da própria requisição. A segunda vai além e faz ao cliente a pergunta: "Prove que você é um navegador e prove que há uma pessoa por trás de você". É aqui que scripts sem execução de JavaScript e ferramentas headless apressadamente configuradas são cortados. Vamos analisar as ferramentas desta camada em ordem crescente de "preço" para o usuário.

Fingerprints de TLS e HTTP/2: filtro transparente

Comece pelo que o usuário nem percebe. No balanceador ou proxy reverso, calcule o fingerprint TLS da conexão e compare com o User-Agent declarado. A lógica típica:

  • O fingerprint corresponde a uma biblioteca HTTP conhecida, e o User-Agent se declara navegador — risco alto.
  • O fingerprint corresponde a navegador, mas não à família ou versão indicada no cabeçalho — risco médio.
  • O fingerprint aparece no seu site pela primeira vez e está presente em milhares de endereços ao mesmo tempo — suspeita de nova ferramenta de scraping.

Detalhe importante de implementação: não bloqueie por fingerprint TLS logo no primeiro dia. Colete estatísticas por uma semana, descubra quais fingerprints correspondem à sua audiência real (incluindo navegadores dentro de apps móveis e webviews de mensageiros, cujos fingerprints são específicos), e só então coloque as regras em modo de ação. Caso contrário, você corre o risco de cortar usuários que abrem seu site pelo Telegram ou por um cliente de e-mail.

Desafio JavaScript: verificação do ambiente de execução

O desafio JS básico é um pequeno script que o cliente deve executar para obter um cookie de acesso. Sem o cookie, o servidor entrega um placeholder em vez de conteúdo. Scripts simples em bibliotecas HTTP não executam JavaScript e ficam do lado de fora. A versão mais avançada coleta características do ambiente e verifica sua consistência, como falamos na seção sobre sinais.

Recomendações práticas de implementação:

  1. Não mostre o desafio para todos. Aplique-o a requisições com score médio de risco e a seções valiosas. A página inicial e as landing pages para onde a publicidade leva devem abrir instantaneamente — cada segundo extra até a primeira tela custa conversão, e os afiliados sabem disso melhor do que ninguém.
  2. Torne o desafio invisível. O script deve rodar em segundo plano em 100-300 milissegundos, sem tela branca nem avisos do tipo "estamos verificando seu navegador". Para o cliente honesto, o processo é imperceptível.
  3. Vincule o resultado à sessão, não ao IP. O cookie de acesso deve ser assinado, ter tempo de vida e conter hash das características-chave do cliente. Assim ele não pode ser simplesmente copiado e distribuído para cem threads de scraper.
  4. Troque o desafio regularmente. Uma verificação estática será decifrada em uma semana. Ofusque o código, altere os parâmetros verificados, rotacione as chaves de assinatura.
  5. Verifique a consistência dos dados JS com os do servidor. Fuso horário do script não coincide com a geolocalização do IP? Plataforma declarada não coincide com o fingerprint TLS? Cada divergência é um ponto de score de risco.

Proof of work: barreira econômica

Um recurso elegante, que vem ganhando popularidade como alternativa ao captcha. O servidor entrega ao cliente uma tarefa computacional (por exemplo, encontrar um valor cujo hash comece com um determinado número de zeros). O navegador no celular resolve em 200-500 milissegundos, imperceptível para a pessoa. Mas o scraper, fazendo 100 mil requisições, é forçado a gastar horas de processador nisso. A complexidade da tarefa pode ser aumentada proporcionalmente ao score de risco: ao cliente suspeito, uma tarefa dez vezes mais pesada. A pessoa não percebe diferença, o bot — e muito.

Captcha: onde é adequado e onde é prejudicial

O captcha é a ferramenta mais visível e mais irritante. Pesquisas de experiência do usuário mostram consistentemente: cada captcha no caminho até a compra reduz a conversão, e para usuários móveis as perdas são maiores. Portanto, a regra é simples: captcha é o último argumento, não a primeira verificação. Pontos de aplicação adequados:

  • formulários de login após várias tentativas falhas;
  • cadastro e recuperação de senha;
  • envio de formulários de contato e avaliações;
  • situações em que o score de risco da sessão já está alto e o cliente continua tentando navegar pelo catálogo;
  • proteção de operações críticas: reserva, aplicação de cupom, adição de produto em falta ao carrinho.

Pontos inadequados: página inicial, cards de produto, busca, landing pages de campanhas publicitárias. Se você precisa colocar captcha no catálogo, significa que as camadas anteriores não estão funcionando, e o que precisa ser tratado são elas. Separadamente: escolha captchas modernos com modo invisível e complexidade adaptativa, não imagens com letras distorcidas dos anos 2000.

Proteção de API e aplicativos móveis

Muitas vezes os scrapers nem passam pelo site — encontram endpoints JSON usados pelo seu frontend e extraem dados limpos sem analisar HTML. Verifique: seu API de catálogo está acessível sem cookie de sessão e sem requisição assinada? Se sim, toda a proteção do site é inútil. O conjunto mínimo de medidas: tokens assinados de curta duração, emitidos após passar pelo desafio; vínculo do token à sessão; limitação do tamanho da resposta e da profundidade da paginação; limites separados e mais rígidos para o API. Para aplicativos móveis — verificação de autenticidade do app pelos recursos das plataformas e certificate pinning.

Checklist da segunda linha

  1. Fingerprints TLS/HTTP2 calculados, estatística semanal da sua audiência coletada.
  2. Regras por fingerprints colocadas em modo de ação só após análise.
  3. Desafio JS implementado de forma invisível e aplicado adaptativamente por score de risco.
  4. Cookie de acesso assinado, vinculado ao cliente, com tempo de vida.
  5. Proof of work implementado com complexidade adaptativa.
  6. Captcha presente apenas em formulários e operações críticas, não no catálogo.
  7. API do catálogo protegido por tokens e limites, inacessível sem sessão.
  8. Todas as verificações testadas em webviews de mensageiros e navegadores móveis.

Método 4. Terceira linha: comportamento, armadilhas e proteção dos próprios dados

Digamos que o scraper passou pelas duas primeiras voltas: ele opera a partir de endereços residenciais, controla um navegador real com fingerprint plausível, executa desafios. E agora? Agora passamos da pergunta "quem é você" para "o que você está fazendo" e, em última instância, para a desvalorização do próprio espólio. Essa é a camada mais inteligente da proteção antibot, e é exatamente ela que distingue um sistema maduro de um conjunto de regras.

Scoring comportamental de sessões

A base da terceira linha é a acumulação de pontos de risco por sessão ao longo do tempo. Indicadores que vale a pena contabilizar:

  • Profundidade e estrutura de navegação. Mais de 50-100 cards de produto por hora, percorrer a paginação até o fim, testar todas as combinações de filtros, mover-se em ordem crescente de identificadores.
  • Ritmo. Intervalos uniformes demais entre requisições ou, ao contrário, intervalos com distribuição perfeitamente aleatória (humanos não são perfeitamente aleatórios).
  • Ausência de interação. Sem eventos de movimento do mouse, rolagem, toques, redimensionamento de janela, foco. Página carregada, mas ninguém olhando para ela.
  • Caminhos atípicos. Nenhuma visita à home, ao carrinho, ao contato. Apenas páginas-alvo com dados.
  • Ignorar recursos. Não são solicitadas imagens, fontes, scripts de análise.
  • Indícios multi-sessão. O mesmo fingerprint de navegador em centenas de endereços, dezenas de sessões com o mesmo padrão de navegação começando no mesmo minuto.

A reação ao aumento do score é a mesma escalada: primeiro desaceleração das respostas, depois desafio de complexidade elevada, depois captcha, depois bloqueio da sessão. E é a sessão e o fingerprint que devem ser bloqueados, não o IP — lembre-se das redes móveis.

Armadilhas honeypot em produção

As armadilhas que usamos no diagnóstico também funcionam muito bem como elemento permanente de proteção. Cada link oculto, cada campo invisível de formulário preenchido pelo cliente, cada requisição a uma URL inexistente na navegação — sinal com nível quase nulo de falsos positivos. Uma pessoa fisicamente não consegue clicar em um elemento de dimensão zero. Regras de segurança: feche as armadilhas para robôs de busca, não use armadilhas que possam atingir leitores de tela para usuários com deficiência, mude a localização e a aparência das armadilhas regularmente.

Desvalorizar o espólio: trabalhar com os próprios dados

Aqui está a estratégia sobre a qual quase ninguém fala, e que muitas vezes é mais eficaz do que qualquer bloqueio. Se você não consegue impedir que o bot leve os dados, faça com que o que foi levado seja inútil ou traiçoeiro.

  • Envenenamento de dados para sessões suspeitas. Ao cliente com score alto de risco é entregue não um erro 403, mas uma página normal com preços e estoques distorcidos: preço mais ou menos 7%, estoque aleatório, avaliação alterada. O scraper não percebe que foi exposto e continua coletando lixo, que depois entra no banco do concorrente. Um incidente desses, descoberto só depois de uma reprecificação, tira a vontade de raspar por muito tempo. Use com cautela: apenas com altíssima certeza, para não mostrar preço errado a um comprador real, e nunca para informação juridicamente relevante.
  • Marcas d'água nos dados. Micro-particularidades de conteúdo únicas para cada sessão: ordem das palavras na descrição, variações invisíveis de formatação, produtos "canário" exclusivos. Por elas, você depois provará de onde os dados vazaram e com qual cliente isso se relaciona.
  • Marcação dinâmica. Troca regular de nomes de classes CSS e da estrutura HTML em páginas valiosas quebra scrapers atrelados a seletores. É uma corrida, mas cada iteração custa a você um release e ao atacante — reescrever a lógica.
  • Renderização não padrão de valores críticos. O preço pode ser montado a partir de vários elementos, inserido via pseudo-elementos CSS, entregue como imagem ou carregado tardiamente após interação. Cada método tem um custo em acessibilidade e SEO — avalie.
  • Limitação da resposta. Não entregue o catálogo inteiro a ninguém: limite rígido de profundidade da paginação, obrigatoriedade de refinar por filtros, ausência de endpoint "todos os produtos em uma lista".

Canal legítimo em vez de guerra

Um recurso paradoxal, mas funcional. Se seus dados são sistematicamente necessários a agregadores, parceiros ou pesquisadores, ofereça a eles uma API oficial com chave, limites e termos de uso. Parte da carga sai da "zona cinzenta" para o controlado, e você passa a ter base jurídica e técnica para agir com rigor contra quem continua raspando páginas públicas.

Framework de implementação gradual das três linhas

Falando separadamente do processo, porque a maioria dos fracassos ocorre não por causa das tecnologias, mas da pressa. A sequência recomendada:

  1. Modo observação (1-2 semanas). Todas as regras e o scoring funcionam, mas nada bloqueiam — apenas registram decisões. Você vê quem bloquearia e confere com a realidade.
  2. Calibração. Analise manualmente o top de sessões "que seriam bloqueadas". Entre elas estarão seus parceiros, seu próprio monitoramento, webviews de mensageiros e usuários com navegadores estranhos, mas reais. Ajuste limiares, adicione exceções.
  3. Ação suave (1-2 semanas). Ative apenas desaceleração e desafios invisíveis. Acompanhe conversão, taxa de rejeição, contatos no suporte.
  4. Ação completa com cobertura gradual. Ative captchas e bloqueios primeiro em 10% do tráfego, depois em 50%, depois totalmente. A cada passo — controle de métricas.
  5. Operação. Revisão semanal de falsos positivos, revisão mensal de limiares, rotação de desafios e armadilhas, atualização de perfis de scrapers.

Métricas-chave para controle

  • Proporção de tráfego classificado como bot, por seção do site.
  • Número de contatos ao suporte com reclamações sobre captcha ou indisponibilidade.
  • Conversão e taxa de rejeição antes e depois, separadamente para o público móvel.
  • Proporção de falsos positivos em uma amostra de sessões verificadas manualmente (meta — menos de 0,5%).
  • Carga na aplicação e no banco de dados, custo de infraestrutura.
  • Tempo entre sua alteração de preço e o aparecimento dela em um concorrente conhecido.

Erros típicos na implementação de proteção antibot

Analisamos o que fazer. Agora, o que não fazer — segundo a experiência de dezenas de projetos, esses erros se repetem com constância surpreendente.

Erro 1. Bloqueio por IP como medida principal

O mais comum e o mais prejudicial. O dono do site vê mil requisições de um endereço, bane-o — e corta um centro empresarial ou um segmento de rede móvel de operadora, atrás do qual estão milhares de assinantes. O scraper, enquanto isso, passa para o próximo endereço. IP é sinal fraco, motivo para verificação reforçada, mas não para banimento.

Erro 2. Captcha em tudo

Reação do tipo "vamos colocar captcha em cada página, e que os bots sofram". Quem sofre não são os bots, é a conversão: pessoas reais vão embora, a publicidade desperdiça orçamento com usuários que não chegaram ao conteúdo, robôs de busca recebem um placeholder. Captcha é ferramenta pontual para formulários e operações críticas.

Erro 3. Ativar bloqueios sem modo observação

As regras são escritas à noite, ativadas de madrugada, e pela manhã o suporte se afoga em reclamações. Sempre primeiro observação, depois calibração, depois ação.

Erro 4. Bots legítimos esquecidos

Um robô de busca bloqueado — perda de posições em duas semanas. Um webhook de pagamento bloqueado — pedidos não pagos. Seu próprio monitoramento bloqueado — alarmes falsos. Antes de ativar qualquer regra, monte e verifique a lista de exceções.

Erro 5. Ignorar API e endpoints móveis

O site está protegido exemplarmente, mas o JSON que o frontend chama está aberto para o mundo sem token. O scraper agradece pelos dados limpos e estruturados. A proteção deve cobrir todos os canais de entrega de conteúdo.

Erro 6. Desafios e armadilhas estáticos

Uma proteção configurada uma vez fica decifrada e contornada em um mês. Proteção antibot é processo, não projeto: rotação, atualização, revisão de limiares.

Erro 7. Envenenamento de dados sem alta certeza

A tentação de mostrar preços "estragados" é grande, mas um preço errado mostrado a um cliente real, e mais ainda um pedido feito com base nele, é risco de reputação e jurídico. Aplique apenas a sessões com score máximo e nunca a informação juridicamente relevante.

Erro 8. Acessibilidade esquecida

Armadilhas e renderização não padrão podem quebrar o site para leitores de tela e usuários com deficiência. Teste a proteção com ferramentas de acessibilidade, não apenas no Chrome mais recente.

Erro 9. Coleta excessiva de dados de usuários

Fingerprints de navegador e logs detalhados de comportamento são informações sujeitas à legislação de proteção de dados pessoais. Colete o mínimo necessário para a decisão, limite os prazos de armazenamento, reflita o fato do tratamento na política de privacidade.

Erro 10. Ausência de métricas de sucesso

A proteção está ativada, mas ninguém consegue responder à pergunta "ficou melhor?". Sem linha de base do diagnóstico e sem controle de conversão, você não distingue vitória de derrota.

Ferramentas e recursos para implementação

Prometemos não comparar fornecedores e cumprimos a palavra. Abaixo estão categorias de ferramentas e o que cada uma faz, para você montar o stack de acordo com sua escala e orçamento. Os nomes de soluções específicas você encontra facilmente sozinho; aqui o que importa é a arquitetura.

Camada de servidor web e proxy reverso

Nginx, Apache, Caddy, HAProxy, Envoy. O que oferecem: rate limiting por chaves flexíveis, regras por cabeçalhos, entrega de respostas distintas por condição, cálculo de fingerprints TLS por meio de módulos e extensões. É sua primeira linha, e para um projeto de até alguns milhões de requisições por dia pode ser suficiente no início.

WAF e CDN com proteção

CDNs em nuvem com WAF integrado e modos de filtragem de bots, ou WAFs auto-hospedados com base em conjuntos abertos de regras. O que oferecem: filtragem por reputação de ASN e geografia, desafios gerenciados, scoring básico, cache. Vantagem — ativação rápida. Desvantagem — personalização limitada à sua lógica de negócio.

Plataformas especializadas de gerenciamento de bots

Sistemas comerciais e abertos que coletam fingerprints de cliente, mantêm scoring comportamental, aplicam desafios adaptativos e oferecem painel de análise. Justificam-se quando a proporção de tráfego de bots é alta, os dados são valiosos e não há equipe para desenvolvimento próprio. Na escolha, observe o modo observação, a granularidade das políticas, o suporte aos seus aplicativos móveis e webviews, e também a transparência das decisões — você deve entender por que um cliente específico foi bloqueado.

Bibliotecas para desenvolvimento próprio

Bibliotecas abertas para coleta de fingerprint de navegador, implementação de proof of work, cálculo de fingerprint TLS do lado do servidor, detecção de indícios de automação. Adequadas a equipes com desenvolvedores que querem controle total. Lembre-se da necessidade de atualização constante: os sinais do modo headless mudam a cada versão de navegador.

Captchas e alternativas

Serviços modernos de verificação com modo invisível e complexidade adaptativa, além de soluções baseadas em proof of work sem interação com o usuário. Critérios de escolha: acessibilidade para pessoas com deficiência, funcionamento na sua região sem atrasos, coleta mínima de dados dos usuários.

Análise e observabilidade

Stack de coleta e análise de logs (ELK e similares, ClickHouse, sistemas de análise em nuvem), dashboards para métricas de proteção, sistemas de alerta de anomalias de tráfego. Sem eles, você está cego: é impossível calibrar limiares sem ver as decisões do sistema por segmento de audiência.

Ferramentas de teste

Recomendação separada: teste sua proteção com as mesmas ferramentas que os scrapers usam. Navegador automatizado em modo headless, cliente HTTP em linguagem popular, ferramentas de perfilamento de rede. Se o seu próprio script simples extrai o catálogo livremente, o trabalho não acabou. Para equipes que trabalham com proxies móveis, é útil testar também o outro cenário: a proteção não está bloqueando usuários honestos de redes móveis, onde os endereços são compartilhados entre milhares de assinantes?

Recursos internos necessários

  • Um responsável pela proteção com autoridade para mudar limiares.
  • Um regulamento de análise de falsos positivos com participação do suporte.
  • Termos de uso e política de privacidade juridicamente bem elaborados.
  • Um canal oficial para parceiros que precisam dos seus dados.

Casos: como isso funciona em projetos reais

Três histórias anonimizadas da prática de implementação, com números e conclusões. Detalhes alterados, essência mantida.

Caso 1. Loja de eletrônicos: 71% das requisições ao catálogo eram de bots

Situação. Loja de médio porte, cerca de 40 mil produtos, percebeu que concorrentes mudavam preços em até meia hora depois dela. O diagnóstico dos logs mostrou: 71% das requisições a cards de produto à noite e 44% de dia eram automatizadas. Perfis principais: dois scripts em nuvem sem JS e um cliente distribuído em endereços residenciais, navegando só pelas páginas com preços. Custo de infraestrutura do tráfego parasita — cerca de 140 mil reais por mês, além de os limites da API paga de geocodificação se esgotarem no meio do dia.

Solução. Primeira linha: limites diferenciados por seção, modo rígido para ASNs de hospedagem, cache de cards. Segunda linha: fingerprints TLS com observação semanal, desafio JS invisível para o catálogo, proteção do endpoint JSON do frontend com tokens. Terceira linha: scoring por profundidade de sessão, links ocultos, produtos canário, e para sessões com score máximo — distorção de preços na faixa de 5-8%.

Resultado em dois meses. A proporção de tráfego de bots ao catálogo caiu para 9%. Os scripts em nuvem desapareceram na primeira semana. O cliente distribuído resistiu três semanas, depois, a julgar pelos produtos canário, começou a coletar preços distorcidos, e em um mês a atividade cessou. A carga na aplicação caiu 58%, os gastos de infraestrutura — 96 mil reais por mês. A conversão não mudou de forma estatisticamente significativa; o número de contatos ao suporte sobre captcha — 11 em dois meses, com uma audiência de centenas de milhares de visitantes. O nível de falsos positivos em amostra manual — 0,3%.

Lição. O envenenamento de dados foi decisivo contra o scraper mais persistente, mas só funcionou porque as camadas anteriores garantiram alta confiança de classificação.

Caso 2. Classificado de serviços: proteção de contatos e anúncios

Situação. A plataforma com anúncios de profissionais autônomos sofria com coleta massiva de dados de contato: telefones de prestadores iam para bases de spam, usuários reclamavam e iam embora. A coleta era feita via navegadores controlados com fingerprints plausíveis, a partir de endereços residenciais e móveis; a primeira linha quase não ajudava.

Solução. Foco na terceira linha e na proteção de dados. Os contatos foram retirados do HTML e passaram a ser entregues apenas por clique, via requisição assinada com token de sessão, com limite de revelações por hora por sessão e complexidade crescente de proof of work conforme o score de risco subia. Para usuários autenticados, limite maior; para visitantes, menor. Scoring de sessões considerando interação: revelar contato sem rolagem prévia até ele e sem movimento do ponteiro somava pontos. Captcha — apenas na quinta revelação e nas seguintes por hora para visitantes.

Resultado. O número de contatos revelados por sessão em clientes suspeitos caiu de centenas para 3-4, após o que as sessões eram bloqueadas. As reclamações de prestadores sobre spam caíram 80% no trimestre. A conversão "visualização de anúncio — contato" em usuários reais cresceu 4% — provavelmente porque as páginas ficaram mais rápidas com a carga aliviada.

Lição. Quando o scraper é indistinguível de humano pelo fingerprint, o que salva é mudar o próprio modelo de entrega dos dados: o valioso é entregue por ação, de forma dosada e com preço crescente.

Caso 3. Catálogo B2B: falsos positivos como principal problema

Situação. Um fornecedor de componentes industriais ativou proteção antibot em nuvem em modo rígido, sem observação. Em dois dias — queda de 35% nos pedidos. A análise mostrou: os clientes da empresa navegam em redes corporativas com endereços compartilhados e navegadores antigos, e boa parte do tráfego vem pelo webview de um mensageiro corporativo com fingerprint TLS não padrão. O sistema os classificou como bots.

Solução. Reversão ao modo observação, duas semanas de calibração, criação de lista branca de fingerprints e sub-redes de clientes-chave, transferência dos segmentos corporativos para o modo "apenas desaceleração e desafio invisível, nunca captcha". Além disso — API parceira para três distribuidores que antes raspavam o catálogo para seus próprios sistemas.

Resultado. Os pedidos foram restaurados em uma semana após a calibração. O tráfego de bots caiu 62% graças à migração dos distribuidores para a API oficial e ao corte de scripts primitivos. Falsos positivos — menos de 0,2%.

Lição. O modo observação não é formalidade. E parte dos "scrapers" na verdade são seus parceiros, aos quais é mais fácil dar uma API do que guerrear.

FAQ: respostas para perguntas difíceis

É possível parar completamente o scraping?

A resposta honesta é não, se os dados estão publicamente acessíveis a uma pessoa, são tecnicamente acessíveis a um bot suficientemente motivado. O objetivo da proteção é tornar a coleta cara, lenta e não confiável o suficiente para que perca sentido econômico. Na maioria dos cenários comerciais, isso basta: o concorrente que recebe dados com um dia de atraso e com uma porcentagem de distorções não obtém vantagem.

A proteção antibot prejudica o SEO?

Prejudica se for feita errado: bloquear robôs de busca, entregar-lhes desafio em vez de conteúdo ou renderizar preços como imagens. Uma proteção bem construída reconhece robôs legítimos (pelos intervalos de endereços declarados e verificação reversa de DNS), deixa-os passar sem verificações e não altera o conteúdo para eles. Verifique a visibilidade das páginas com ferramentas de webmaster após cada mudança de política.

Como proteger o site sem bloquear usuários de redes móveis?

Nunca banir um IP individual de rede móvel; contar limites por sub-rede ou ASN com limiares altos; confiar em sinais de sessão e comportamentais, não de rede; aplicar a clientes duvidosos desafios invisíveis e desaceleração, não captcha. Teste obrigatoriamente a proteção a partir de dispositivos móveis reais nas redes das principais operadoras.

Vale a pena fazer a proteção por conta própria ou contratar uma plataforma pronta?

Depende da escala e da equipe. A primeira linha e os desafios básicos são implementados por um desenvolvedor em algumas semanas e cobrem a maior parte dos bots primitivos. O scoring comportamental com atualização constante é, na prática, um produto separado, e para projetos sem equipe de segurança dedicada, uma plataforma pronta costuma sair mais barata na conta anual. O caminho razoável é começar com medidas básicas próprias, medir o problema restante e só então decidir se precisa de uma ferramenta especializada.

Como lidar com os crawlers de modelos de IA?

Como uma decisão de negócio, não apenas técnica. Se a presença nas respostas de assistentes de IA traz audiência para você — permita o acesso pelas regras para robôs e não atrapalhe. Se seu conteúdo é seu produto e a paráfrase por um modelo tira seu tráfego — proíba explicitamente e reforce com medidas técnicas. Operadores conscientes declaram seus crawlers e respeitam as regras; os inconscientes caem na proteção antibot geral, como os demais scrapers.

É legal entregar dados distorcidos a scrapers?

Tecnicamente, você tem o direito de mostrar conteúdos diferentes a clientes diferentes em seu recurso, mas é preciso excluir situações em que a informação distorcida se torne base para uma transação com um consumidor real, e também não distorcer informação que a lei obriga a divulgar com veracidade. Aplique o envenenamento apenas a sessões com máxima confiança de classificação, desative-o para usuários autenticados e consulte um advogado em relação ao seu setor.

Com que frequência é preciso atualizar a proteção?

Limiares e exceções — semanalmente nos primeiros meses, depois mensalmente. Desafios e armadilhas — rotação a cada 4-8 semanas ou ao detectar contorno. Perfis de scrapers — revisar a cada mudança perceptível no quadro de tráfego. Indícios de automação nos navegadores — a cada versão principal dos navegadores. Proteção sem manutenção degrada em um ou dois trimestres.

O que fazer se quem raspa é um concorrente grande, com orçamento alto?

Deslocar o foco do bloqueio para a desvalorização e as provas: registros canário e marcas d'água darão argumentos jurídicos, o envenenamento de dados tornará o espólio não confiável, a limitação da profundidade da resposta impedirá a extração do catálogo inteiro. Em paralelo, registre os incidentes e avalie as perspectivas de uma notificação extrajudicial — havendo provas de coleta sistemática em violação dos termos de uso, ela muitas vezes se mostra mais eficaz do que a corrida técnica.

Por onde começar se o orçamento e o tempo são limitados?

Um dia para diagnóstico via logs. Depois: rate limiting diferenciado com duas janelas, cache de páginas caras, fechamento dos endpoints JSON com tokens, links-armadilha ocultos e produtos canário. Esse conjunto é implementado em uma semana quase sem custo e corta boa parte dos problemas. Depois — medir e decidir se a próxima camada é necessária.

Conclusão: proteção como processo, não como compra

Se resumirmos tudo o que foi dito em uma ideia, ela será esta: proteção antibot não é uma caixa que se instala e se esquece, mas um sistema de três camadas coordenadas e um processo de calibração constante. A camada de rede corta bots primitivos quase de graça. A verificação do cliente pega scripts e navegadores automatizados mal configurados. A análise comportamental e o trabalho com os próprios dados tornam inútil até o esforço de scrapers avançados. E o que une tudo é o princípio do scoring: não bater a porta por um único indício, mas acumular sinais fracos e reagir proporcionalmente.

O processo não é menos importante. Diagnóstico antes da implementação, modo observação antes de ativar bloqueios, cobertura gradual, métricas de conversão ao lado das métricas de proteção, rotação regular — é exatamente isso que distingue projetos bem-sucedidos daqueles que, em uma semana, precisam reverter tudo por causa de reclamações de clientes. E lembre-se das pessoas por trás dos endereços: usuários de redes móveis, proxies corporativos e webviews de mensageiros são seus compradores reais, e a proteção precisa passar no teste de simpatia em relação a eles.

O que fazer a seguir, hoje mesmo:

  1. Exporte os logs da semana e responda às perguntas da seção de diagnóstico. É gratuito e leva algumas horas.
  2. Calcule quanto custa o tráfego de bots em infraestrutura e lucro cessante. Esse número definirá o orçamento.
  3. Implemente a primeira linha seguindo o checklist: limites, cache, regras por cabeçalhos, proteção de API.
  4. Monte armadilhas e registros canário — eles vão trabalhar para você por meses.
  5. Planeje a segunda e a terceira linhas por etapas, com modo observação em cada passo.
  6. Crie um calendário de manutenção da proteção e defina um responsável.

Os dados que você coleta e cria são um ativo. Como qualquer ativo, merecem proteção proporcional ao seu valor e que não atrapalhe aqueles para quem foram criados. Esperamos que este guia seja aquele favorito ao qual você voltará em cada etapa — do primeiro olhar sobre os logs até um sistema maduro e tranquilo em operação.