Fingerprinting JavaScript e Detecço de Bots: Como Websites o Identificam
Especialistas em Marketing de Performance
Revisado por Media Buyers Sênior
Publicado em 1 de junho de 2023Atualizado em 5 de abril de 2026
Por Unled Network 5 de abr de 2026 - 17 min de leitura
Pontos Principais
- Fingerprinting JavaScript recolhe mais de 50 características do navegador para gerar um identificador único, muito mais resistente que cookies e bem mais difícil de bloquear.
- Os sinais principais de fingerprinting incluem Canvas, WebGL, AudioContext, fontes, propriedades de tela e dados da API navigator.
- Sistemas anti-bot combinam fingerprinting JS com Impresso digital de TLS (JA3/JA4) com análise comportamental para detecço de bots com preciso máxima.
- Navegadores headless (Puppeteer, Playwright) e ferramentas de automaço deixam rastros identificáveis que a impresso digital revela, como APIs ausentes, respostas idênticas e anomalias temporais.
- É possível falsificar impressões digitais, mas cada vez mais complexo, já que sistemas anti-bot usam verificações de consistência que capturam valores falsificados descombinados.
Sempre que você acessa um website, seu navegador revela silenciosamente dezenas de características únicas, desde a resoluço da tela e modelo da GPU até fontes instaladas, peculiaridades no processamento de áudio e a forma exata como seu navegador renderiza elementos canvas invisíveis. No conjunto, esses sinais compõem uma impresso digital do navegador to exclusiva quanto uma impresso digital humana.
Essa tecnologia está por trás dos sistemas modernos de detecço de bots, prevenço de fraudes e defesas contra automaço. Saber como funciona é fundamental tanto para quem protege um website contra bots quanto para quem quer entender por que certos sistemas de segurança questionam seu tráfego.
O Que É Fingerprinting via JavaScript?
Fingerprinting via JavaScript é uma técnica que usa APIs JavaScript do lado do navegador para coletar características do dispositivo e do ambiente, gerando um identificador único para cada sesso de navegaço. Diferente de cookies (que os usuários conseguem apagar) ou endereços IP (que mudam), as impressões digitais têm:
- Persistência: Resistem à limpeza de cookies, navegaço privada e reinicializações do navegador
- Singularidade: A combinaço de mais de 50 sinais cria impressões digitais únicas entre milhões de navegadores
- Passividade: A coleta ocorre de forma invisível, sem qualquer interaço do usuário
- Difícil de falsificar: Alterar um sinal costuma deixar rastros inconsistentes com os demais
Dados de singularidade: O projeto Panopticlick da EFF revelou que 83,6% dos navegadores possuem uma impresso única. Ao incluir canvas fingerprinting, a singularidade ultrapassa 95%. Sistemas modernos que usam mais de 50 sinais conseguem alcançar unicidade próxima a 100% em populações típicas de usuários.
Como Funciona a Impresso Digital do Navegador
Um script de fingerprinting normalmente executa três fases:
- Coleta: APIs JavaScript consultam propriedades do navegador, objeto navigator, características da tela, renderizaço canvas, capacidades WebGL, processamento de AudioContext, entre outros.
- Criptografia: Os valores coletados so combinados e criptografados, normalmente com SHA-256 ou MurmurHash3, gerando uma sequência compacta de impresso digital
- Comparaço: O hash é confrontado com impressões já conhecidas, identificando um visitante anterior, uma ferramenta de bot conhecida ou um ambiente falsificado
Principais Sinais de Fingerprinting
Fingerprinting de Canvas
O sinal mais potente para fingerprinting. Um elemento <canvas> oculto desenha textos, formas e gradientes. O resultado pixel a pixel varia conforme a GPU, verso do driver, engine de renderizaço de fontes e implementaço de anti-aliasing. Dois dispositivos diferentes quase nunca produzem a mesma saída de canvas.
Impresso Digital por WebGL
WebGL expõe informações da GPU, como renderizador e fabricante, e gera saídas de renderizaço únicas. A extenso WEBGL_debug_renderer_info identifica o modelo exato da placa gráfica. Quando combinados com testes de renderizaço WebGL, esses dados formam uma impresso digital robusta baseada em hardware.
Impresso Digital por AudioContext
A Web Audio API processa sinais sonoros de forma distinta em cada dispositivo, devido às diferenças de hardware e software. Scripts de impresso digital geram osciladores e analisam a saída para capturar características únicas do processamento de áudio.
Impresso Digital por Fontes
Versões diferentes de sistemas operacionais, pacotes de idioma e aplicações instaladas criam conjuntos únicos de fontes. Ao medir a largura e altura da renderizaço de texto em várias fontes, scripts identificam quais esto instaladas, construindo uma impresso digital baseada em fontes.
Propriedades do Navegador e Tela
| Sinal | O Que Revela | Entropia |
| navigator.userAgent | Verso do navegador, sistema operacional, tipo de dispositivo | Média (fácil de falsificar) |
| navigator.language | Idioma(s) preferido(s) | Baixo-Médio |
| navigator.hardwareConcurrency | Quantidade de núcleos de CPU | Baixo |
| navigator.deviceMemory | Quantidade de RAM (aproximada) | Baixo |
| screen.width/height | Resoluço do ecrã | Médio |
| screen.colorDepth | Capacidade de profundidade de cor | Baixo |
| navigator.platform | Cadeia de identificaço do sistema operativo | Baixo (descontinuado) |
| navigator.maxTouchPoints | Capacidade tátil | Baixo |
| Intl.DateTimeFormat().resolvedOptions().timeZone | Fuso horário | Médio |
Sinais Adicionais de Alto Valor
- Vazamento WebRTC: Pode expor endereços IP locais e públicos, até mesmo através de VPNs
- API de bateria: Nível de bateria e status de carregamento (descontinuado na maioria dos navegadores por questões de privacidade)
- Estados de permisso: Se notificações, geolocalizaço e permissões de câmera foram concedidas ou negadas
- Dicas do cliente: User-Agent Client Hints do Chrome fornecem dados de dispositivo estruturados
- Media queries CSS: Identificar preferência de modo escuro, movimento reduzido, configurações de contraste
Fingerprinting TLS (JA3/JA4)
O fingerprinting TLS funciona no nível da conexo, antes de qualquer JavaScript ser executado:
Fingerprinting JA3
Desenvolvido pela Salesforce, o JA3 cria um hash dos componentes da mensagem TLS Client Hello: verso SSL, cifras, extensões, curvas elípticas e formatos de ponto EC. Cada cliente HTTP (Chrome, Firefox, Python requests, Go http, curl) produz um hash JA3 único. Isso identifica o software cliente real mesmo quando os headers de user-agent so falsificados.
Fingerprinting JA4
O padro JA4 mais recente melhora o JA3 com um formato mais legível e rastreamento de verso superior. Ele cria uma string de fingerprint como "t13d1715h2_8daaf6152771_b0da82dd1658" que codifica verso TLS, contagem de cifras, contagem de extensões e valores ALPN.
Por que o fingerprinting TLS é devastador para bots: Falsificar um fingerprint TLS exige modificar a biblioteca TLS no nível C/C++, muito mais complexo que alterar strings de user-agent. A maioria dos operadores de bots usa bibliotecas HTTP Python, Go ou Node.js que possuem hashes JA3 distintivos que os identificam instantaneamente como clientes no-navegador.
Como Sistemas Anti-Bot Usam Fingerprinting
Soluções anti-bot modernas como Cloudflare Bot Management, Akamai Bot Manager e DataDome combinam fingerprinting com múltiplas camadas de detecço:
- Verificaço de impresso TLS: Confirma se a conexo parte de um navegador legítimo, no de uma biblioteca HTTP
- Execuço de JavaScript: Executa scripts de coleta de impresso digital, marcando instantaneamente bots incapazes de rodar JS
- Validaço de coerência: Controla se a impresso JS bate com a impresso TLS (por exemplo, se JA3 indica Chrome mas canvas mostra headless, dispara um alerta)
- Comparaço com bots conhecidos: Confronta a impresso com banco de dados de assinaturas de ferramentas de bot catalogadas
- Camada comportamental: Mescla a pontuaço de impresso com movimento do mouse, temporizaço de cliques e padrões de scroll
Identificando Navegadores Headless
Navegadores headless (Chrome headless, Puppeteer, Playwright) deixam rastros óbvios:
- navigator.webdriver: Definido como
true em navegadores automatizados (pode ser falsificado mas é detectado via verificações de protótipo)
- Objeto Chrome ausente:
window.chrome no existe ou está incompleto no Chrome sem interface gráfica
- Contagem de plugins: Chrome real informa plugins; Chrome sem interface geralmente reporta zero
- Fornecedor WebGL incompatível: Ambientes sem interface costumam reportar «Google Inc. (Google SwiftShader)» - um renderizador por software
- Permisso de notificações: Navegadores sem interface no conseguem solicitar permisso de notificações, expondo-se pelo comportamento da API
- ContentWindow do Iframe: Chrome sem interface trata acesso a iframe de origem cruzada de forma diferente
- Anomalias de temporizaço: Navegadores automatizados executam JavaScript em velocidade sobre-humana ou com timing perfeitamente consistente
Spoofing de Impresso Digital e Anti-Detecço
Várias ferramentas tentam modificar impressões digitais do navegador:
| Ferramenta | Metodologia | Risco de Detecço |
| GoLogin | Chromium personalizado com perfis de impresso digital configuráveis | Médio |
| Multilogin | Navegador simulado com personalizaço profunda de impresso digital | Médio |
| Puppeteer Extra (Stealth) | Plugin que corrige rastros detectáveis do Puppeteer | Médio-Alto |
| undetected-chromedriver | ChromeDriver modificado que contorna detecções comuns | Médio-Alto |
| Extensões de navegador | Bloqueador de canvas, falsificaço de WebGL | Alto (introduz artefatos detectáveis) |
O desafio central da falsificaço: Para alterar a saída de canvas e simular uma GPU diferente, é preciso reproduzir com preciso o pipeline de renderizaço dessa GPU. Sistemas anti-bot testam centenas de micro-variações que so quase impossíveis de falsificar de forma consistente. A inconsistência entre valores falsificados costuma ser mais detectável do que a impresso digital original.
Estratégias de Defesa para Proprietários de Sites
Se você está protegendo seu site contra bots, implemente fingerprinting como parte de uma defesa em camadas:
- Use uma soluço gerenciada:
Cloudflare, Akamai ou DataDome fazem fingerprinting em larga escala
- Combine com limitaço de taxa: Fingerprinting identifica bots; limitaço de taxa contém o impacto deles
- Adicione análise comportamental: Fingerprinting + rastreamento de mouse + timing de cliques = detecço abrangente
- Implante em infraestrutura protegida contra DDoS: Fingerprinting funciona na camada de aplicaço, você precisa de proteço no nível de rede
Proteço contra ataques DDoS também
- Atualize a detecço com regularidade: Os bots evoluem constantemente; sua detecço precisa acompanhar ainda mais rápido
Questões de Privacidade
A identificaço por impresso digital do navegador traz preocupações sérias com privacidade. Os principais navegadores restringem cada vez mais essas capacidades:
- Firefox: Oferece modo de resistência a impresso digital que padroniza canvas, WebGL e outros outputs
- Safari: Limita a leitura de canvas e restringe a enumeraço de fontes
- Chrome: Reduz informações de user-agent através de Client Hints e Privacy Sandbox
- GDPR e legislações de privacidade: A impresso digital pode ser considerada coleta de dados pessoais e exigir consentimento na UE
Defenda Seu Site Contra Ataques de Bots
Nossa equipe de segurança implementa detecço avançada de bots, fingerprinting, proteço contra DDoS e configuraço de WAF para websites e aplicações sob ataque.
Telegram: @unlednetwork →
Fale conosco no WhatsApp →