Abra as ferramentas de programador, carregue a página e leia os cabeçalhos do pedido antes de concluir algo sobre a VPN. Normalmente encontrará uma linha Accept-Language que pede um conjunto específico de idiomas, e essa linha vem das configurações do navegador, não do seu endereço de saída. Um falante de francês numa saída em Tóquio continua a enviar francês, e um site que responde em francês está a responder ao cabeçalho. O túnel não vaza só porque a página chegou num idioma conhecido.

Leia o cabeçalho antes de tudo

Num navegador de ambiente de trabalho, abra o painel Rede, recarregue, clique no pedido do documento e veja sob os cabeçalhos do pedido. A partir de um terminal pode ver o mesmo sem navegador, e pode substituir o valor para testar o comportamento do site:

curl -sS -D /tmp/h1 -o /tmp/b1 https://example.com
curl -sS -D /tmp/h2 -o /tmp/b2 -H 'Accept-Language: fr,en;q=0.6' https://example.com
grep -o 'lang="[^"]*"' /tmp/b1 /tmp/b2
diff /tmp/b1 /tmp/b2 | head -40

Agora o corpo está no disco, pelo que a comparação é sobre a página e não sobre um cabeçalho que talvez nunca seja enviado. Repare no atributo lang da etiqueta html e no texto visível, porque o Content-Language é opcional e muitos servidores omitem-no. Por isso, um site que muda a página inteira de inglês para francês no mesmo URL pode parecer inalterado numa comparação apenas de cabeçalhos. Se o idioma do documento segue o cabeçalho enquanto a saída permanece fixa, o cabeçalho era a entrada decisiva e a VPN não tem nada a ver com essa observação.

Use um segundo perfil de navegador em vez do seletor de idioma do próprio site para este teste. Um seletor normalmente escreve um cookie, que é outra entrada, e acabará a medir o cookie em vez do cabeçalho.

O que significam os valores q, e o que não significam

A RFC 9110, secção 12.5.4, define Accept-Language como uma lista de idiomas naturais preferidos para a resposta. Cada entrada pode transportar um peso de 0 a 1, um intervalo sem peso tem peso 1, e um peso 0 marca um idioma como não aceitável. Isso é uma ordem de preferência e nada mais.

O valor não é um relatório de localização, nem uma pontuação de confiança, nem uma identidade. Um servidor é livre de o ignorar, de servir a única tradução que tem ou de deixar ganhar um redirecionamento por país. A negociação de conteúdo é uma escolha do servidor, e o cabeçalho é uma entrada para essa escolha, não uma ordem.

É esta a parte que as pessoas perdem quando tratam uma página localizada como um teste de localização. O cabeçalho declara que idiomas a pessoa prefere ler, e uma preferência pode viajar para qualquer lado.

Três entradas decidem o idioma que realmente recebe

Isole-as uma de cada vez, porque de fora não vê qual venceu:

  • O cabeçalho. Teste com um segundo perfil configurado para outra lista de idiomas e observe se a página muda enquanto tudo o resto se mantém constante.
  • Uma escolha guardada. Teste numa janela privada sem cookies ou apague o armazenamento do site. As definições da conta e as entradas de localStorage podem fixar um idioma durante meses.
  • Um URL ou um redirecionamento. Teste pedindo o caminho de idioma explícito, como /fr/, e observando os códigos de estado de um redirecionamento baseado no endereço de origem.

Execute os três testes nessa ordem e anote qual moveu o resultado. Um único carregamento de página que muda de idioma depois de ativar a VPN é prova fraca, porque tanto um redirecionamento como um cookie em cache podem produzir essa impressão.

O que a VPN muda e o que não muda

O túnel muda o endereço de origem que um servidor vê e, com ele, tudo o que o servidor deduz da geolocalização por IP. Não reescreve as preferências de idioma do navegador, não apaga uma definição guardada e não muda o URL que escreveu. Essas entradas ficam exatamente onde estavam, por isso uma página pode manter o idioma antigo depois de a saída se deslocar.

A geolocalização acrescenta o seu próprio ruído. As bases de dados de endereços discordam entre si, e uma saída registada num país pode ser mapeada para outro, o que faz um redirecionamento por país parecer errado por razões que nada têm a ver com o seu navegador.

Uma verificação rápida separa-as: peça a página de novo, anote o endereço que apresenta e depois compare o idioma da resposta com a sua lista de cabeçalhos. Se o idioma corresponder à sua lista e não ao país de saída, o cabeçalho era a entrada decisiva e não há nada a corrigir no túnel.

O que uma página localizada prova e o que não prova

Há aqui um ponto real de privacidade, e é mais pequeno do que aquele que as pessoas costumam apresentar. Uma lista completa de preferências de idioma é uma entrada de impressão digital e pode revelar algo sobre quem é ou o que lê. É uma divulgação genuína de preferência, e não é o mesmo que provar que o tráfego escapou do túnel.

Uma página localizada não é um indicador de fuga. Se quer mesmo testar uma fuga, verifique o endereço de saída que o site vê, o caminho do resolver usado nas consultas de nomes e os candidatos que uma pilha WebRTC expõe. Esses testes respondem à pergunta a que o idioma da página não consegue responder.

Da próxima vez que um site pareça conhecer o seu país, abra primeiro os cabeçalhos do pedido. Se o idioma da resposta corresponder à lista do seu navegador, nada vazou, e a camada que deve observar é a que tem à frente.

Artigos relacionados