Durante décadas, navegadores permitiram que sites identificassem se um usuário já havia visitado determinados links por meio do seletor CSS :visited
, uma funcionalidade visual aparentemente inofensiva que mudava a cor dos links clicados. No entanto, essa alteração era detectável via scripts e permitia a coleta silenciosa do histórico de navegação — uma falha crítica para a privacidade online.
Google encerra brecha de 20 anos que expunha histórico de navegação
Com o lançamento do Chrome 136, o Google introduz um novo sistema de particionamento que bloqueia definitivamente esse tipo de exploração, marcando o fim de uma vulnerabilidade que perdurava há 20 anos.
Como a falha era explorada
Sites podiam estilizar links para detectar se um visitante já havia acessado determinados endereços. Essa tática, combinada com códigos em JavaScript, possibilitava a criação de perfis comportamentais, campanhas de phishing personalizadas e rastreamento persistente entre domínios distintos.
Várias técnicas de ataque exploravam essa brecha:
- Análise temporal para medir diferenças de carregamento
- Uso de pixels espiões em links específicos
- Scripts interativos para inferir comportamento do usuário
- Ataques de nível de processo para rastreamento mais profundo
Mesmo que o seletor :visited
tivesse limitações impostas em navegadores como Firefox e Safari, nenhum deles implementava um isolamento completo até agora.
A nova solução no Chrome
A partir da versão 136, o Chrome adotará um modelo de “particionamento com três chaves”, que impede que um link marcado como visitado num site possa ser detectado por outro. A lógica funciona com base em três critérios:
- A URL do link acessado
- O domínio principal onde o link foi clicado
- A origem do quadro (iframe) que exibe o link
Dessa forma, apenas o site que hospedou e originou a navegação poderá identificar visualmente que o link foi visitado, eliminando a possibilidade de espionagem entre domínios diferentes.
Exceção útil: auto-referência
Para manter a experiência de navegação intuitiva, o Chrome manterá a marcação de links visitados dentro do mesmo site, mesmo que o clique original tenha vindo de outro domínio. Essa exceção não compromete a segurança, já que o próprio site já conhece o tráfego interno do usuário.
Outras propostas de solução, como desativar o seletor :visited
ou aplicar um sistema de permissões, foram descartadas por impactarem negativamente na usabilidade ou por serem tecnicamente vulneráveis a abusos.
Como ativar o recurso
O isolamento de links visitados já pode ser testado a partir da versão 132 do Chrome. Nas versões 132 a 135, ele pode ser ativado manualmente através do endereço:
pgsqlCopiarEditarchrome://flags/#partition-visited-link-database-with-self-links
No Chrome 136, o sistema será ativado por padrão, representando uma atualização essencial para a privacidade do usuário na web.
E nos outros navegadores?
Apesar de medidas parciais, Firefox e Safari ainda deixam lacunas.
- O Firefox restringe estilos e bloqueia acesso via JavaScript, mas não isola os dados entre sites.
- O Safari utiliza a tecnologia de prevenção de rastreamento inteligente, mas também não adota particionamento de links.
Com isso, o Chrome se posiciona na vanguarda da proteção de histórico de navegação, oferecendo uma camada adicional de segurança que limita o rastreamento e aumenta o controle do usuário sobre sua privacidade.