O browser language fingerprinting (impressão digital por idioma do navegador) é uma técnica de rastreamento que lê navigator.languages — uma propriedade JavaScript que expõe sua lista completa e ordenada de idiomas preferidos — para construir um identificador persistente para seu navegador sem armazenar nada no seu dispositivo. Você pode ver exatamente o que seu navegador revela agora mesmo no whatsmy.fyi.
Resumo
Todo navegador expõe uma lista ordenada de suas preferências de idioma via navigator.languages. Rastreadores leem esse array — junto com seu timezone, geolocalização de IP e tamanho de tela — para verificar ou afinar sua impressão digital do navegador. Por conta própria, a preferência de idioma é um sinal de baixa entropia. Combinada com uma dúzia de outros sinais, torna-se uma verificação de consistência confiável que confirma que você é a mesma pessoa entre sites e sessões, mesmo após limpar cookies.
O que é Browser Language Fingerprinting?
O browser language fingerprinting é um componente do toolkit mais amplo de browser fingerprinting. Ele explora duas APIs do navegador intimamente relacionadas: navigator.languages (um array ordenado de códigos de idioma) e navigator.language (a única preferência principal). Ambas estão disponíveis para qualquer JavaScript rodando na página sem nenhuma interação ou permissão do usuário.
O que torna os dados de idioma úteis para rastreadores não é que sejam altamente únicos por si só — a maioria dos falantes de inglês reporta ["en-US", "en"]. Em vez disso, serve duas funções: adiciona à entropia da impressão digital quando a combinação é incomum, e atua como um sinal de consistência que validadores cruzam com o cabeçalho HTTP Accept-Language, geolocalização de IP e timezone do sistema. Qualquer inconsistência entre essas camadas é em si um sinal de rastreamento — um que sinaliza usuários de VPN, emuladores de navegador e ferramentas de privacidade.
A ferramenta Cover Your Tracks da Electronic Frontier Foundation testa a exposição de idioma como um de mais de 30 sinais que mede na sua impressão digital do navegador, e consistentemente o encontra legível em todos os principais navegadores.
Como navigator.languages Funciona?
navigator.languages retorna um array somente leitura de tags de idioma BCP 47 ordenadas da mais preferida para a menos preferida. Cada tag segue o formato idioma-REGIÃO — por exemplo en-US, zh-CN ou pt-BR. O primeiro elemento sempre é igual ao valor de navigator.language.
O array é populado a partir das configurações de idioma do seu navegador, que tipicamente espelham a lista de idiomas configurada no seu sistema operacional. No Chrome e Firefox, os usuários podem configurar múltiplos idiomas nas configurações do navegador; a ordem resultante é refletida exatamente em navigator.languages. A mesma lista é enviada como o cabeçalho HTTP Accept-Language a cada carregamento de página.
// Reading language preferences — available to any site script
console.log(navigator.language);
// → "pt-BR"
console.log(navigator.languages);
// → ["pt-BR", "pt", "en-US", "en"]
// Each language preference is listed in priority order.
// A bilingual user who added English fallbacks
// is far more identifiable than a monolingual speaker.
// The browser sends the same preferences in every HTTP request:
// Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
// A fingerprinting script combines this with other signals:
function getLanguageFingerprint() {
return {
language: navigator.language,
languages: navigator.languages,
// Cross-check: does language match the user's timezone?
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
// Cross-check: does language match the system locale?
locale: Intl.DateTimeFormat().resolvedOptions().locale,
};
}
// Output for a bilingual user: high entropy
// Output for a typical monolingual user: low entropy,
// but still useful for consistency validationnavigator.language vs navigator.languages
As duas propriedades são relacionadas mas não idênticas, e rastreadores leem ambas:
| Propriedade | Tipo de retorno | Valor de exemplo | Papel no fingerprinting |
|---|---|---|---|
navigator.language | String | "pt-BR" | Baixa entropia; corresponde à maioria dos usuários em uma região |
navigator.languages | Array de strings | ["pt-BR", "en-US", "de"] | Entropia mais alta; combinações incomuns são distintivas |
Cabeçalho Accept-Language | String de cabeçalho HTTP | pt-BR,pt;q=0.9,en;q=0.8 | Enviado a cada requisição; vetor de fingerprinting do lado do servidor |
Locale da API Intl | String | "pt-BR" | Verificação cruzada com array de idioma para consistência |
Quão Única é uma Impressão Digital de Idioma?
A preferência de idioma sozinha está entre os sinais de menor entropia no toolkit de fingerprinting. Seu poder vem da combinação e verificação de consistência. A tabela abaixo coloca sua contribuição em contexto ao lado de sinais de maior entropia:
| Sinal | Entropia aproximada | Fonte |
|---|---|---|
| String user agent | 10–15 bits | EFF Cover Your Tracks |
| Renderização canvas | 8–12 bits | Pesquisa EFF / BrowserLeaks |
| Renderer WebGL | 6–10 bits | Estudos acadêmicos de fingerprinting |
| Timezone do sistema | 3–4 bits | EFF Panopticlick, 2010 |
| Array de idioma (monolíngue) | <1 bit | Análise EFF / 404privacy.com |
| Array de idioma (multilíngue, combinação incomum) | 3–6 bits | Estudos de campo acadêmicos |
| Impressão digital completa (30+ sinais combinados) | 18+ bits (1 em 287.000) | Pesquisa original EFF Panopticlick |
O estudo Panopticlick de 2010 da EFF — que analisou mais de 500.000 impressões digitais de navegadores — descobriu que 84% dos navegadores eram completamente únicos. A preferência de idioma foi um dos sinais medidos; sua contribuição aumentou significativamente para navegadores com configurações não-inglesas ou multilíngues. Criticamente, o estudo encontrou evidências de que o fingerprinting por idioma tem um impacto desproporcional: usuários hispânicos e falantes de idiomas minoritários enfrentam taxas de unicidade mais altas e, portanto, maior exposição ao rastreamento do que usuários somente em inglês.
Quem Usa Language Fingerprinting no Mundo Real?
Redes de Publicidade e Rastreadores Entre Sites
Plataformas de ad-tech agrupam navigator.languages com dezenas de outros sinais ao construir um identificador de dispositivo. Os dados de idioma são especialmente valiosos como sinal de consistência — se a geolocalização de IP de um usuário sugere a Alemanha mas seu array de idioma é ["en-US", "en"], essa inconsistência sugere uma VPN ou proxy, o que em si afeta decisões de segmentação de anúncios. À medida que os cookies de terceiros foram descontinuados nos navegadores, identificadores baseados em fingerprinting cresceram para preencher a mesma função de segmentação.
Plataformas de Detecção de Fraudes e Bots
Serviços como Fingerprint.com incluem a preferência de idioma em seu sistema Smart Signals como parte de um perfil de inteligência de dispositivo. Se uma tentativa de login chega de um dispositivo cujo array de idioma difere do registrado para essa conta, isso dispara um sinal de risco. Ferramentas de automação de navegador e navegadores headless frequentemente reportam valores de idioma incomuns ou padrão — ["en-US"] em uma configuração perfeitamente genérica — que sistemas de fraude usam para sinalizar atividade de bot.
Sistemas Anti-Bot e Anti-Emulador
Sistemas que protegem contra fraude de conta, compra de ingressos em escala e credential stuffing verificam cruzadamente múltiplos sinais de localização: navigator.languages, o cabeçalho HTTP Accept-Language, geolocalização de IP e o timezone reportado pela API Intl. Uma impressão digital perfeitamente consistente em todos os quatro sugere um navegador legítimo. Inconsistências — comuns em Selenium, Puppeteer e ferramentas de spoofing de impressão digital — são um sinal confiável de bot.
Aplicação de Paywall e Restrição Regional
Sites de mídia e serviços de streaming combinam região de IP com navigator.languages para detectar usuários que contornam restrições geográficas. Um usuário roteando tráfego através de um nó de saída dos EUA enquanto seu navegador reporta ["pt-BR", "pt"] é uma inconsistência clara que aciona a aplicação de geo-restrição.
O Language Fingerprinting É Legal?
Sob o GDPR, dados de preferência de idioma contribuem para uma impressão digital do navegador que se qualifica como dados pessoais quando pode ser razoavelmente vinculada a um indivíduo. A autoridade francesa de proteção de dados (CNIL) exigiu explicitamente consentimento informado para fingerprinting de navegador usado para publicidade. No Brasil, a LGPD (Lei Geral de Proteção de Dados) exige base legal adequada para o tratamento de identificadores obtidos por fingerprinting — incluindo dados de preferência de idioma — o que significa que rastreadores que operam no Brasil devem ou obter consentimento ou demonstrar legítimo interesse para fins de prevenção de fraudes ou segurança.
A Orientação de Fingerprinting do W3C identifica especificamente navigator.languages como uma superfície de fingerprinting e aconselha os fornecedores de navegador a limitar sua exposição. Essa orientação influenciou o comportamento do Safari, Brave e o modo de privacidade do Firefox.
Como se Proteger do Language Fingerprinting
A proteção contra fingerprinting por idioma é mais alcançável do que a proteção contra sinais de alta entropia como canvas ou WebGL — porque os dados são mais simples de normalizar. Estas opções são classificadas do mais forte ao mais prático:
- Brave Browser (recomendado para uso diário): Os Shields do Brave implementam proteção contra fingerprinting por idioma por padrão. No modo padrão, o Brave reporta apenas sua preferência de idioma principal em vez do array completo. No modo estrito, sempre reporta
"en-US"independentemente das suas configurações reais, colocando você no maior conjunto de anonimato possível. A proteção se estende ao cabeçalho Accept-Language também, garantindo que a camada HTTP e a camada JavaScript reportem consistentemente. - Firefox com
privacy.resistFingerprinting: Ativar esta flag noabout:configfaz o Firefox reportar apenas["en-US", "en"]independentemente dos seus idiomas configurados, correspondendo à linha de base do Tor Browser e maximizando o conjunto de anonimato. - Tor Browser (proteção mais forte): O Tor Browser reporta uma configuração de idioma uniforme idêntica para todos os usuários Tor — tornando o rastreamento individual por idioma impossível dentro da rede Tor. A compensação é navegação mais lenta e alguns problemas de compatibilidade com sites.
- Safari (proteção parcial integrada): O Safari no iOS e macOS reporta apenas a preferência de idioma principal do usuário, não o array completo. Isso não é proteção total, mas reduz significativamente o sinal disponível para rastreadores.
- Reduza sua lista de idiomas: Se você adicionou múltiplos idiomas às configurações do seu navegador puramente por preferências de conteúdo, considere remover os menos usados. Uma combinação incomum como
["pt-BR", "en-US", "de", "ja"]é muito mais distintiva do que["pt-BR"]. Esta é uma mudança de baixo atrito que reduz significativamente a entropia de idioma. - Use uma VPN — mas entenda seus limites: Uma VPN muda sua geolocalização de IP, o que pode introduzir uma inconsistência de idioma-localização que em si se torna um sinal. Uma VPN não muda o que
navigator.languagesreporta. Verifique se sua VPN e seus sinais de idioma são consistentes no whatsmy.fyi.
Perguntas Frequentes
O language fingerprinting funciona no modo incógnito ou privado?
Sim. O modo de navegação privada impede que seu navegador salve histórico, cookies e dados de formulário — mas não muda suas configurações de idioma. navigator.languages retorna os mesmos valores em uma janela incógnita que em uma janela normal. O Chrome no modo incógnito reporta sua lista de idiomas configurada real sem alterações. Apenas navegadores com proteções ativas de impressão digital — Brave, Firefox com privacy.resistFingerprinting ou Tor Browser — se comportam de forma diferente.
Qual é a diferença entre navigator.language e navigator.languages?
navigator.language retorna uma única string — sua preferência de idioma principal. navigator.languages retorna um array ordenado de todas as suas preferências de idioma configuradas, da mais para a menos preferida. O primeiro elemento de navigator.languages sempre é igual a navigator.language. Rastreadores leem o array completo porque contém mais entropia — um usuário que configurou ["pt-BR", "en-US", "ja"] é muito mais identificável do que um que reporta apenas "pt-BR".
Uma VPN pode prevenir o language fingerprinting?
Não. Uma VPN roteia seu tráfego através de um servidor diferente para mudar seu endereço IP visível, mas não tem efeito no que o JavaScript lê das configurações de idioma do seu navegador. navigator.languages é populado a partir da configuração do seu navegador e sistema operacional, não do seu caminho de rede. Na verdade, uma VPN pode piorar a consistência da sua impressão digital: se seu IP sugere um país mas seu array de idioma sugere outro, essa inconsistência é em si um sinal de rastreamento distintivo.
O cabeçalho Accept-Language HTTP é o mesmo que navigator.languages?
Eles compartilham os mesmos dados de origem. O cabeçalho Accept-Language é construído a partir das suas preferências de idioma e enviado com cada requisição HTTP antes que qualquer JavaScript execute — o que significa que sistemas de fingerprinting do lado do servidor podem lê-lo sem precisar executar nenhum script. navigator.languages expõe as mesmas preferências via JavaScript. Rastreadores cruzam ambos para detectar inconsistências que possam indicar spoofing. A proteção de fingerprinting por idioma do Brave cobre tanto o cabeçalho HTTP quanto a API JavaScript para mantê-los consistentes.
O language fingerprinting afeta mais usuários que falam idiomas minoritários?
Sim. Pesquisas do estudo Panopticlick da EFF descobriram que falantes não-ingleses e usuários multilíngues têm taxas de unicidade de impressão digital mais altas — e, portanto, maior exposição ao rastreamento — do que usuários somente em inglês. Um usuário cujo array de idioma inclui uma tag de idioma de baixa frequência, ou uma combinação incomum de idiomas, é significativamente mais identificável do que um usuário que reporta apenas ["en-US"]. Esse impacto desproporcional é uma das razões pelas quais defensores da privacidade argumentam que o fingerprinting deve exigir consentimento explícito.
Como a proteção de language fingerprinting do Brave funciona tecnicamente?
Os Shields do Brave interceptam chamadas para navigator.languages e o cabeçalho HTTP Accept-Language no nível do motor do navegador. No modo Shields padrão, o Brave retorna apenas a preferência de idioma principal, descartando idiomas secundários do array. No modo estrito, sempre retorna ["en-US"] e define o cabeçalho HTTP correspondente, colocando o usuário no mesmo conjunto de anonimato que a maioria dos usuários da internet. Isso é aplicado por site e por sessão, consistente com a abordagem Farbling mais ampla do Brave para randomização de impressão digital.
Como o language fingerprinting se combina com outros sinais de rastreamento?
O idioma é mais poderoso como parte de uma impressão digital de múltiplos sinais. Plataformas comerciais de fingerprinting como Fingerprint.com combinam idioma com saída de canvas, renderer WebGL, resolução de tela, concorrência de hardware, fontes instaladas, timezone e 20 ou mais sinais adicionais. O idioma contribui tanto com sua própria entropia quanto com uma verificação de consistência contra os outros sinais relacionados à localização. Uma impressão digital completa combinando 30+ sinais atinge pelo menos 18 bits de entropia — o que significa que apenas 1 em 287.000 navegadores compartilha o mesmo perfil — com idioma como um dos validadores de consistência que mantém o perfil unido. Veja canvas fingerprinting e áudio fingerprinting para os sinais de alta entropia que os validadores de idioma reforçam.
Artigos Relacionados
- O que é Browser Fingerprinting? Como Sites Rastreiam Você Sem Cookies — o guia completo de todos os sinais de fingerprinting combinados
- O que é Canvas Fingerprinting? Como Sites Rastreiam Você Sem Cookies — como a API Canvas HTML5 desenha uma imagem oculta que identifica exclusivamente sua GPU
- O que é Áudio Fingerprinting? Como o AudioContext Rastreia Seu Navegador — como o stack de áudio do seu dispositivo produz um identificador único
- O que é WebGL Fingerprinting? Como Sua GPU Identifica Seu Navegador — como a API de gráficos 3D expõe diretamente o nome do fornecedor e versão do driver da sua GPU



