voltar à visão geral Mais artigos

Você é Detectável como um Bot? Teste Seu Navegador em Busca de Vazamentos de Automação

Analisando seu navegador em busca de sinais de automação...

Se você automatiza um navegador, seja para scraping, testes de QA ou gerenciamento de contas, uma pergunta decide se você passa ou recebe um CAPTCHA: seu navegador parece humano? O widget nesta página faz essa pergunta ao seu navegador atual, verificação por verificação.

Alguns anos atrás, uma única linha de JavaScript resolvia a questão. Selenium, Puppeteer e Playwright definiam navigator.webdriver como true, e os sites simplesmente liam esse valor de volta. Hoje essa verificação não pega quase nada, porque toda configuração séria de automação corrige a flag antes de a página carregar. A detecção evoluiu. Este artigo mostra para onde ela foi.

Versão resumida: a detecção de bots não é mais uma única flag, é uma pilha delas. Os indícios fáceis (webdriver, um User-Agent headless) estão mortos. Os duradouros vivem no pipeline de renderização e no canal do DevTools, e quanto mais um plugin de stealth se esforça para esconder os indícios fáceis, mais reconhecíveis se tornam suas correções.

Os indícios clássicos e por que pararam de funcionar

Estas são as verificações que todo tutorial de 2019 ainda ensina e que todo plugin de stealth moderno derrota:

  • navigator.webdriver. Definido como true por Selenium, Puppeteer e Playwright, e revertido para false por toda ferramenta de stealth em uma única linha.
  • Um User-Agent “HeadlessChrome”. O antigo Chrome headless se anunciava na string do User-Agent. Ninguém que esteja se esforçando deixa isso ali.
  • Listas de plugins e idiomas vazias. Padrões do modo headless que uma linha de configuração corrige. Um Chrome desktop real vem com plugins de PDF e sempre reporta pelo menos um idioma.
  • A ausência do objeto window.chrome. Algumas builds automatizadas o removem, o que parece estranho em um navegador que afirma ser o Chrome.

Nenhuma dessas detém mais um bot competente. Elas permanecem no teste porque expõem instantaneamente os descuidados e porque um navegador real passa por elas sem esforço.

Onde a detecção realmente acontece hoje

As verificações que ainda funcionam não são flags cosméticas. São consequências de como o navegador está sendo controlado, e isso as torna muito mais difíceis de eliminar com correções.

O canal do DevTools. Puppeteer e Playwright controlam o Chrome através do Chrome DevTools Protocol e, para fazer seu trabalho, ativam o domínio Runtime, que silenciosamente serializa todo objeto entregue ao console. Essa serialização lê propriedades que nada mais lê. Registre um objeto Error com uma armadilha na propriedade stack e o canal de automação se entrega, por mais cuidadosamente que as flags de superfície tenham sido corrigidas. Este é o sinal mais difícil de esconder. Ele também dispara se você simplesmente estiver com o DevTools aberto agora, e é por isso que o widget alerta sobre isso.

Renderização por software. Um navegador headless em um servidor não tem GPU, então recorre a um renderizador por software: SwiftShader no Chrome, llvmpipe no Linux. A string do renderizador WebGL diz isso em texto puro. Um laptop real reporta uma GPU Intel, Apple, AMD ou NVIDIA, e “Google SwiftShader” significa um servidor se passando por um. Essa é a mesma string de renderizador que nosso artigo sobre fingerprinting de canvas lê por outros motivos.

Funções nativas corrigidas. Aqui está o paradoxo no coração das ferramentas de stealth: para esconder navigator.webdriver, um plugin precisa sobrescrevê-lo, e uma função nativa sobrescrita deixa de reportar [native code] quando um script inspeciona seu código-fonte. Toda função que um plugin de stealth toca vira uma prova da existência desse plugin. Quanto mais completa a correção, mais há para encontrar. Extensões de privacidade que falsificam leituras de canvas ou WebGL acionam a mesma verificação, o que vale a pena saber mesmo que você nunca automatize nada.

Consistência do engine. Pequenas constantes internas, como o comprimento exato do código-fonte de eval, são fixas para cada engine JavaScript. Afirme ser o Chrome enquanto as constantes do seu engine dizem o contrário e o User-Agent é exposto como uma fantasia. É a mesma armadilha de contradição que descrevemos para o sistema operacional em Um Navegador, Cinco Alegações de SO e para a versão do navegador em Seu User-Agent Mente.

Comportamento, a camada que as ferramentas de stealth não alcançam

Tudo acima descreve o navegador em repouso. O sinal que nenhum plugin corrige é o que acontece depois que a página é aberta. Os sistemas antibot observam a física da interação: um clique sem nenhum movimento de mouse que o anteceda, um cursor que se desloca em linha perfeitamente reta, rolagem sem suavização, teclas digitadas com regularidade de máquina. Humanos são ruidosos de maneiras consistentes. Scripts são limpos de maneiras que humanos nunca são. Um fingerprint estático pode ser forjado uma vez; o comportamento precisa ser encenado de forma convincente durante toda a sessão.

O teste nesta página é apenas estático, porque a pontuação comportamental precisa de um modelo e de um servidor. Mas o comportamento é para onde a detecção comercial está caminhando, e é por isso que corrigir cada flag ainda não é suficiente.

Como a Cloudflare e a DataDome pontuam você

Sistemas antibot comerciais como Cloudflare, DataDome, Kasada e HUMAN não dependem de nenhuma verificação isolada. Eles combinam os sinais de JavaScript acima com fingerprints de rede (o handshake TLS e o comportamento do HTTP/2, que o JavaScript não consegue ver nem alterar), reputação de IP e pontuação comportamental, e fundem tudo isso em uma única pontuação em milissegundos. A DataDome chega a treinar um modelo separado para cada site que protege. Você não está tentando passar em um teste. Você está tentando parecer consistente em todos eles ao mesmo tempo.

Esse também é o limite honesto de qualquer teste feito no navegador, incluindo este. Ele enxerga o lado do cliente. A metade referente à rede é medida no servidor, antes que uma única linha do seu JavaScript seja executada.

Os agentes de IA estão mudando a pergunta

Os bots mais novos são agentes de IA que controlam navegadores. Ferramentas como o computer use do Claude, o Operator da OpenAI e o Browser Use controlam navegadores reais para realizar tarefas em nome das pessoas, e passam batido pelas verificações clássicas porque, por baixo, muitas vezes são um Chrome comum. Ainda assim, os indícios duradouros continuam valendo. Eles são controlados pelo DevTools Protocol, frequentemente rodam em modo headless em servidores com GPUs por software, e o ritmo de suas interações tem a limpeza típica de uma máquina. Os fornecedores de detecção estão silenciosamente mudando de “isto é um bot?” para “isto é um humano, um bot do bem ou um agente autônomo?”, e respondem a essa pergunta exatamente com os sinais do widget nesta página.

O que realmente fazer

  1. Nunca faça meia-correção. Um navegador que foi visivelmente adulterado é um sinal mais raro e mais chamativo do que um honesto. Plugins de stealth que corrigem flags uma a uma fabricam exatamente a prova que os sistemas antibot procuram. Se você não consegue tornar toda a pilha consistente, adicionar correções só piora as coisas.
  2. Teste sua configuração antes de depender dela. Aponte o que quer que você use para esta página e para o scan completo do navegador antes que isso lhe custe uma conta ou um dia de scraping. Um indício que você mesmo encontra é um indício que você pode corrigir.
  3. Se você gerencia múltiplas identidades, use um navegador que seja consistente por construção. Um engine de renderização real, saída de GPU real, funções nativas intactas e um fingerprint que concorda consigo mesmo, da string do WebGL à lista de fontes. É para isso que os navegadores anti-detecção existem. O Incogniton monta cada perfil como um navegador real e autoconsistente, de modo que os sinais se alinham em vez de se contradizerem.

Automação e navegadores anti-detecção são ferramentas legais com muitos usos legítimos, de testes de QA e verificação de anúncios ao gerenciamento de contas empresariais. Se um determinado site os permite ou não é definido pelas regras desse site, então conheça-as antes de agir em escala.

Quer ver como o seu próprio navegador se sai? O widget nesta página verifica os sinais de automação do lado do cliente, e o scan completo do navegador roda o teste de vazamento de WebRTC, os hashes de fingerprint e as verificações cruzadas de plataforma e versão junto com ele.

Logotipo da Incogniton

Eleve o nível da sua privacidade

Seta