Durante mais de duas décadas, uma vulnerabilidade silenciosa dentro do mecanismo de estilo da web permitiu a websites curiosos espiar os padrões de navegação privada dos usuários. Tudo começou com um recurso familiar: a mudança de cor dos links clicados. Mas por trás desse comportamento simples, os sites poderiam extrair uma quantidade surpreendente de informações. O Google agora reformulou a estrutura subjacente do Chrome para cortar esse canal oculto.
Os navegadores sempre suportaram regras especiais de estilo para links que os usuários já visitaram. Esses links mudam de cor (geralmente para roxo), dando aos usuários uma dica sobre os lugares onde estiveram. O estilo funcionava por meio de um mecanismo conhecido como “:visited”, que se aplicava mesmo quando os links apareciam em outros sites. Esse comportamento abria uma porta. As páginas poderiam carregar links para sites ou blogs externos e em seguida observar como esses links apareciam. Se parecessem visitados, o site poderia inferir o que o usuário havia clicado em outro lugar.
Isso não era apenas teórico. Ao longo dos anos, os pesquisadores desenvolveram diversas maneiras de transformar esse detalhe em um método de rastreamento. Alguns usavam mudanças no nível de pixel. Outros mediam pequenos atrasos. Até mesmo as ações do usuário davam pistas. Nada disso precisava de dados de login. O próprio navegador estava silenciosamente revelando o comportamento passado.
Até agora, os dados de links visitados viviam em um único pool de memória. Quando alguém clicava em um link em um site, qualquer outro site que mostrasse o mesmo endereço poderia detectar aquela visita. Com o Chrome 136, o Google encerrou esse modelo legado. Em vez de compartilhar uma lista de histórico em toda a web, o Chrome agora armazena o status visitado usando três chaves precisas. Cada chave inclui o endereço de destino, o site de alto nível visível no navegador e a fonte interna do link. Se alguma dessas peças não corresponder, o link não parecerá visitado.
Essa mudança quebra a lógica por trás da detecção entre sites. Agora, se alguém clicar em um link enquanto navega no Site A, o mesmo link não aparecerá como visitado quando ele aparecer no Site B. Apenas o contexto original o estilizará de forma diferente. Os sites não têm mais visibilidade indevida sobre a atividade que aconteceu em outro lugar.
Uma exceção permanece para a conveniência do usuário. Se um site exibir links para suas próprias páginas, esses links ainda aparecerão como visitados – mesmo se os cliques aconteceram enquanto navegavam a partir de um site diferente. Uma vez que cada site já sabe quais de suas próprias páginas um visitante acessou, esse comportamento não adiciona novos riscos à privacidade.
O Google considerou outros caminhos, como remover completamente o estilo visitado ou exigir permissão, mas os rejeitou. Remover o estilo poderia atrapalhar a navegação, enquanto um sistema de permissão poderia ser burlado. A solução escolhida equilibra a privacidade com a familiaridade.
Os usuários do Chrome que desejam experimentar a correção antecipadamente podem ativá-la manualmente nas versões 132 a 135. A configuração está disponível navegando até a página de recursos experimentais e ativando a bandeira de partição de links visitados. Na versão 136, a alteração se torna padrão.
Outros navegadores abordaram partes desse problema, mas ficaram aquém da partição completa. O Firefox restringe o estilo, mas não isola os dados visitados. O Safari usa ferramentas de privacidade como prevenção de rastreamento, mas ainda carece de separação baseada em contexto. O Chrome, com esse lançamento, se torna o primeiro navegador a neutralizar a raiz da falha.
Essa correção chega tarde, mas fecha uma fraqueza bem conhecida incorporada na forma como a web funcionava desde seus primeiros dias. Depois de anos de correções e soluções parciais, a porta finalmente está fechada.