Como os sites coletam informações do navegador: cabeçalhos, APIs e renderização

Os sites coletam informações do navegador por vários canais. Alguns dados acompanham a requisição de uma página. Outros campos só aparecem depois que o código é executado no navegador. Os testes de renderização vão um passo além: pedem ao navegador que execute uma tarefa e medem o resultado.

O método de coleta explica por que bloquear um script pode remover um resultado de Canvas enquanto o servidor ainda vê um endereço IP. Também explica por que dois sites de teste de fingerprint podem produzir relatórios diferentes a partir do mesmo navegador.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Separar dados passivos da requisição de medições ativas
  • Acompanhar um teste de renderização da entrada ao resultado
  • Explicar diferenças entre relatórios de fingerprint

Informações enviadas com a requisição

O servidor recebe as informações da conexão e os cabeçalhos incluídos em uma requisição.

Exemplos incluem um endereço IP de origem, o User-Agent e preferências de idioma. Quais cabeçalhos aparecem depende do navegador, do contexto da requisição e da configuração. Uma página não precisa desenhar uma imagem em Canvas para que o servidor receba uma requisição HTTP.

Cookies que correspondem ao escopo da requisição também podem ser enviados. São valores salvos associados ao site, portanto mantenha-os separados das informações medidas no navegador atual.

Informações lidas por meio de APIs do navegador

O JavaScript pode consultar APIs compatíveis para obter informações sobre o ambiente atual da página.

MétodoExemploO que afeta o resultado
Ler uma propriedade do navegadorPreferências de idioma ou capacidade de toqueSuporte do navegador e configurações de privacidade
Medir a páginaDimensões da viewportTamanho da janela, zoom e layout
Solicitar um recurso protegidoGeolocalizaçãoPermissão, contexto de segurança e disponibilidade

Dados indisponíveis podem significar funcionalidade sem suporte, uma solicitação negada, bloqueio de script ou um erro de teste. É útil registrar o motivo em vez de tratar cada campo vazio como ocultação.

Informações medidas a partir do resultado

Um teste de renderização fornece uma entrada, obtém uma saída e geralmente calcula um hash.

No Canvas, a entrada pode ser texto, formas e cores. A saída são dados de pixels. Um hash facilita a comparação, mas seu significado depende da amostra, do processamento da saída e do método de hash. Dois sites podem relatar hashes diferentes porque seus testes são diferentes.

Para uma comparação útil, mantenha a página de teste e as configurações fixas. Registre a versão do navegador, execute o teste novamente e depois altere uma condição. Isso separa uma mudança no ambiente de uma mudança na medição.

Por que os métodos de coleta fazem parte de um relatório

Mostrar de onde veio um valor transforma uma longa lista de campos em algo que você pode investigar. Um cabeçalho incompatível, uma API bloqueada e uma amostra de renderização alterada pedem verificações de acompanhamento diferentes.

Interpretando o resultado

  • Uma API disponível não comprova que todos os sites a utilizem.
  • Permissões do navegador e proteções de privacidade podem reduzir ou alterar as observações.
  • Um hash de um teste só é comparável dentro de um método de medição compatível.

Perguntas frequentes

O fingerprinting sempre precisa de JavaScript?

Não. Os servidores podem observar propriedades da requisição e da conexão sem JavaScript na página. Muitas verificações mais ricas do navegador e de renderização usam scripts.

Por que um teste mostra mais campos que outro?

Os testes podem consultar APIs diferentes, usar permissões diferentes ou aplicar regras de interpretação diferentes. Compare seus métodos e os campos nomeados.

Ler um campo significa que o site o armazena?

Coleta, transmissão e retenção são etapas separadas. Um resultado de teste visível, por si só, não descreve todas as decisões de armazenamento no servidor.

Referências

Próximos passos

Impressão digital do navegador vs. cookies

Quais informações os sites podem ver