>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
JavaScript

Como Descobrir Que Proteção Está Rodando em um Site e O Que Ela Está Coletando Sobre Você

Scrapfly Anti-bot Detector banner

Qualquer pessoa que já escreveu um parser ou configurou testes end-to-end em sites reais já se deparou com uma situação em que o script de repente recebe um status 403 ou um redirecionamento infinito para uma página em branco. Você fica no DevTools, alternando entre as abas Network e Application, tentando adivinhar: foi o Cloudflare que bloqueou a requisição, foi o DataDome que inseriu uma checklist invisível, ou o script da página discretamente fez um fingerprint de Canvas e WebGL?

A equipe do Scrapfly lançou uma extensão Chrome de código aberto chamada Scrapfly Anti-bot Detector. Esta é uma ferramenta para pesquisadores de segurança, pentesters e desenvolvedores de parsers que analisa páginas em tempo real e mostra quais sistemas de proteção estão ativos e quais técnicas de fingerprinting estão sendo acionadas agora.

Detection overview

O que a extensão pode detectar

A extensão roda no Manifest V3 e não envia dados para servidores externos. Toda a análise acontece localmente no navegador.

Ela classifica os mecanismos de proteção detectados em três categorias:

  • Sistemas de proteção contra bots. Detecta Cloudflare, Akamai, DataDome, PerimeterX, Imperva, Kasada, Shape Security e AWS WAF.
  • CAPTCHAs. Encontra reCAPTCHA, hCaptcha, FunCaptcha, GeeTest e Cloudflare Turnstile.
  • Técnicas de fingerprinting digital. Rastreia 21 métodos de fingerprinting, incluindo Canvas, WebGL, AudioContext, fontes, WebRTC, Performance API, propriedades do Navigator e Storage.

| Detection | History | Rules Editor | |---|---|---| | Detection | History | Rules |

Como funciona a detecção em múltiplas camadas

Sistemas anti-bot raramente se revelam com um header de resposta explícito. Geralmente eles espalham sua lógica entre scripts, cookies e objetos globais. A extensão usa cinco camadas de análise simultaneamente.

Primeiro, ela inspeciona o DOM. A extensão procura por elementos de marcação característicos, nomes de classes e scripts externos conectados.

Em paralelo, o service worker monitora as requisições de rede, filtrando headers, cookies, URLs de requisição e os corpos dos payloads submetidos.

A parte mais interessante está em interceptar chamadas de API do navegador. Antes dos scripts da página começarem a executar (no estágio document_start), a extensão injeta hooks no contexto principal da página (MAIN world). Se um script de proteção tentar desenhar um elemento oculto em um canvas ou solicitar parâmetros de contexto de áudio, o hook registra a chamada, coleta os parâmetros da chamada e os passa por uma ponte isolada para o módulo detector.

Os hooks não permanecem ativos indefinidamente: eles são automaticamente descarregados após dois segundos de inatividade ou 8 segundos após o início da página.

| Data extraction tools | Settings | |---|---|---| | Advanced Tools | Settings |

Ferramentas integradas para análise profunda

Além de uma simples lista de fornecedores detectados, a extensão inclui uma seção de Ferramentas Avançadas. Ela resolve um problema prático: extrair os parâmetros necessários para depurar automação.

  • Para reCAPTCHA, hCaptcha e Turnstile, o módulo encontra o SiteKey, seletores de contêiner e callbacks JS registrados.
  • Para Akamai e DataDome, o utilitário intercepta dados de sensor gerados e analisa a validade dos cookies de proteção.
  • Para FunCaptcha e GeeTest, ele analisa chaves públicas e parâmetros de desafio.
  • Para Imperva e Shape Security, ele verifica headers específicos e scripts de validação associados.

A ferramenta pode capturar dados de páginas de desafio intermediárias antes que o navegador realize o redirecionamento final para a página de destino.

Arquitetura do projeto e sem etapa de build

O código fonte é escrito em JavaScript moderno puro sem bundlers, Webpack ou TypeScript. Para executar o projeto localmente, basta clonar o repositório e carregar a pasta no Chrome via modo desenvolvedor.

A estrutura do repositório é dividida em camadas claras:

core/
├── manifest.json              # Конфигурация Manifest V3
├── background.js              # Service Worker, сетевой анализ
├── content.js                 # Content script в ISOLATED world
├── content-main-world.js      # JS-хуки в MAIN world
├── detectors/                 # Правила детекции в формате JSON
   ├── antibot/              # Cloudflare, Akamai, DataDome, Imperva
   ├── captcha/              # reCAPTCHA, Turnstile, hCaptcha
   └── fingerprint/          # Canvas, WebGL, Audio, Storage
└── modules/                   # Менеджеры состояния и обработчики

Todas as assinaturas de detecção e regras são extraídas em arquivos JSON no diretório detectors/. Você pode editá-los diretamente na interface da extensão através do editor de regras integrado, adicionando suas próprias expressões regulares, verificações de variáveis de objetos globais window ou assinaturas personalizadas de cookies.

Para otimização de performance, os autores usaram um cache LRU para expressões regulares compiladas, o que elimina o risco de travamentos por ReDoS, e um cache de 12 horas de resultados com saída antecipada em correspondências de alta confiança.

Os testes são escritos no executor node:test integrado e não requerem dependências externas. Você pode executar verificação de sintaxe e testes com um único comando:

npm run verify

Para quais tarefas isso será útil

Antes de mais nada, a extensão economiza tempo para desenvolvedores de crawlers e analistas de dados. Em vez de vasculhar manualmente código minificado e logs de rede, você pode em poucos segundos entender exatamente com quem está lidando e quais assinaturas de ambiente a página verifica.

O segundo cenário é auditar sua própria proteção. Se você está configurando um WAF ou módulo anti-bot em produção, a extensão mostrará claramente se um observador externo pode ver suas regras e se os desafios estão funcionando corretamente.

Por fim, este é um excelente material de aprendizado para quem quer estudar como o Manifest V3 funciona, a transferência segura de dados entre os contextos MAIN e ISOLATED, e métodos de fingerprinting passivo. O projeto é licenciado sob NPOSL-3.0 e está disponível na Chrome Web Store.

Projetos relacionados