realfp.com

O que é o idioma do navegador?

Na era digital, a proteção da privacidade tornou-se um foco de atenção para cada vez mais pessoas. Quando falamos sobre impressão digital do navegador, geralmente pensamos em técnicas como impressão digital Canvas, impressão digital WebGL ou impressão digital de áudio. No entanto, há uma dimensão de informação aparentemente inofensiva que também pode ser usada para identificar dispositivos——as suas configurações de idioma.



Idioma preferido: preferências de idioma no navegador

As configurações de idioma do navegador não são apenas uma opção de exibição. Quando você abre as preferências de idioma do navegador, normalmente verá uma lista de idiomas organizada por prioridade. Por exemplo, você pode definir inglês (Estados Unidos) como idioma preferido, seguido por inglês, francês, português etc.



Essa lista de idiomas não serve apenas para determinar o idioma de exibição da interface do navegador. Quando você acessa um site, essas informações de preferência de idioma são incluídas na requisição HTTP e enviadas ao servidor. Um site pode obter a lista de idiomas preferidos do navegador do usuário por meio de um simples script JavaScript. Isso significa que, toda vez que você acessa uma página da web, suas preferências de idioma estão “informando” ao site algo sobre você.



Idioma no cabeçalho da requisição: Accept-Language em requisições HTTP

Nos cabeçalhos de requisição HTTP, há um campo chamado Accept-Language, que carrega informações detalhadas sobre os idiomas preferidos do navegador do usuário. O formato desse campo geralmente se parece com o seguinte:



Accept-Language: en-US, en;q=0.9, fr-FR;q=0.8, fr;q=0.7



Vamos interpretar o significado desse trecho:



en-US:indica que o idioma preferido é o inglês americano, com a maior prioridade.



en;q=0.9:se o inglês americano não estiver disponível, o inglês (genérico) é aceitável, mas com prioridade um pouco menor, com peso 0,9.



fr-FR;q=0.8:o francês da França é aceitável, com peso 0,8.



fr;q=0.7:qualquer variante do francês é aceitável, com a menor prioridade, peso 0,7.



O intervalo de valores de peso vai de 0 a 1; quanto maior o valor, maior o grau de preferência do usuário por esse idioma. Ao analisar esse campo, o site pode compreender as preferências do ambiente linguístico do usuário e, assim, oferecer de forma direcionada o conteúdo da página na versão de idioma correspondente, permitindo que o usuário navegue e entenda o site com mais facilidade.



Fazendo uma analogia: o Accept-Language é como um cardápio que você entrega ao garçom ao fazer um pedido em um restaurante——ele informa claramente o que você quer e qual é a prioridade. O servidor, por sua vez, é como um chef que prepara o “prato” mais adequado para você de acordo com o seu “cardápio” (ou seja, o conteúdo localizado).



Internationalization API: suporte mais refinado à localização

Além do campo de idioma nos cabeçalhos de requisição HTTP, o navegador também oferece um conjunto de interfaces JavaScript chamado Internationalization API (API de internacionalização). O objetivo dessa API é ajudar os desenvolvedores a implementar a internacionalização de sites, ou seja, apresentar datas, horas e números nos formatos correspondentes, bem como fornecer traduções de strings localizadas, de acordo com as configurações de idioma e região do usuário.



Quando um usuário abre um site, o site pode usar a Internationalization API para obter as preferências de idioma configuradas no navegador. Por exemplo, se o idioma do navegador do usuário estiver definido como inglês, a string retornada pela API pode ser "en" ou "en-US".



Um cenário típico de aplicação são as plataformas de redes sociais. Quando usuários de diferentes partes do mundo acessam o mesmo site social, o site usa a Internationalization API para detectar as preferências de idioma do usuário e exibir automaticamente uma interface em um idioma familiar para ele, em vez de um idioma que ele não conhece. Essa experiência localizada melhora significativamente a usabilidade do produto e a satisfação do usuário.



Como as informações de idioma participam da identificação por impressão digital?

Isoladamente, as informações de idioma parecem não ter um poder de identificação muito forte——afinal, há milhões de usuários no mundo que definem o inglês como idioma preferido. No entanto, quando as informações de idioma são combinadas com outros dados de impressão digital (como impressão digital Canvas, impressão digital WebGL, impressão digital de áudio, resolução da tela, fuso horário etc.), a situação muda completamente.



As combinações de preferências de idioma são extremamente diversas: incluem não apenas os tipos de idioma preferido, mas também a ordem dos idiomas alternativos, o valor de peso de cada idioma e as configurações regionais mais granulares obtidas por meio da Internationalization API. Esses parâmetros, em conjunto, formam uma “impressão digital de idioma” relativamente única.



Mais importante ainda, as configurações de idioma tendem a ser bastante estáveis——usuários comuns raramente alteram com frequência as preferências de idioma do navegador. Isso significa que, uma vez que um site registre a sua combinação de impressão digital de idioma, ele poderá usar essas informações em acessos posteriores para ajudar a identificar o seu dispositivo, mesmo que o usuário limpe os Cookies ou altere o endereço IP.



Como proteger a sua impressão digital de idioma?

Se você deseja reduzir o risco de que informações de idioma sejam usadas para rastreamento por impressão digital, pode considerar os seguintes métodos:



1. Usar navegadores com proteção de privacidade:navegadores voltados à privacidade, como o Tor Browser, padronizam ou randomizam cabeçalhos de requisição relacionados a idioma, reduzindo as diferenças entre dispositivos.



2. Usar extensões de navegador:algumas extensões de proteção de privacidade (como Privacy Badger, uBlock Origin etc.) podem modificar ou limitar as informações de idioma nos cabeçalhos de requisição HTTP.



3. Usar navegadores de impressão digital:navegadores antidetecção profissionais permitem que o usuário personalize e falsifique parâmetros relacionados ao idioma, fazendo com que o site o veja como um usuário comum com preferências de idioma diferentes por meio de “substituição”, em vez de “desativação”.



Conclusão

As informações de idioma——seja o campo Accept-Language nos cabeçalhos de requisição HTTP, seja as preferências de idioma fornecidas pela Internationalization API——não foram originalmente projetadas para rastrear usuários. O propósito inicial dos sites ao adotar essas tecnologias era oferecer uma melhor experiência ao usuário, atendendo às necessidades de usuários de diferentes regiões do mundo.



No entanto, dentro do contexto mais amplo da identificação por impressão digital do navegador, esses dados de preferência de idioma aparentemente inofensivos também podem ser coletados e utilizados, combinando-se com outras técnicas de impressão digital para construir uma identificação de usuário mais precisa. Compreender esse mecanismo é o primeiro passo para proteger a privacidade pessoal.