4 pontos por xguru 2025-04-11 | 1 comentários | Compartilhar no WhatsApp
  • Para resolver o antigo problema de segurança da web de “exposição do histórico de navegação do usuário” por meio da estilização de links :visited, foi introduzido um novo recurso
  • A partir do Chrome 136, ao “particionar o armazenamento” do histórico de :visited, a estrutura foi aprimorada para bloquear esses ataques na origem
  • O recurso de diferenciar visualmente links visitados é mantido, mas foi projetado para que outros sites não possam explorá-lo

Explicação de como funciona o armazenamento particionado de links :visited

  • No modelo anterior, ao clicar em um link, ele passava a aparecer como :visited em qualquer site
  • Isso era uma falha de segurança de projeto, pois permitia que sites maliciosos rastreassem o histórico de navegação do usuário
  • Exemplo: depois de clicar em um link para o Site-B no Site-A, se o mesmo link existisse no Site-Evil, o Site-B apareceria como :visited, permitindo inferir se o usuário o havia visitado
  • Na nova estrutura, o histórico de visita é armazenado apenas para a combinação “site A + destino do link B”
  • Ou seja, no Site-Evil, como o usuário não clicou nesse link ali, ele não será exibido como :visited
  • Como resultado, o histórico de visitas deixa de ser armazenado globalmente e passa a ser separado com base em “URL do link + site de nível superior + origem do frame”

Como os links dentro do mesmo site são tratados

  • Suponha que um usuário pesquisando tipos de metal tenha clicado nas páginas de chrome e brass do site.wiki a partir do metals.com
  • Depois, ao visitar a página gold do site.wiki, os links para chrome e brass não apareceriam como :visited (porque o contexto do clique foi diferente)
  • Para melhorar isso, foi introduzida uma exceção para self-links
  • Links para subpáginas dentro do mesmo site passam a ser exibidos como :visited mesmo que não tenham sido clicados exatamente no mesmo contexto
  • Isso foi permitido porque se entende que o próprio site já pode rastrear o histórico de navegação do usuário dentro dele, então não há exposição adicional de informação
  • Porém, essa exceção não se aplica a sites de terceiros nem a links de terceiros dentro de iframes

Status de adoção do recurso

1 comentários

 
xguru 2025-04-11

No GeekNews também tentamos usar :visited, mas por causa da segurança quase nada funcionava, então acabamos desistindo.
Se tudo isso for implementado, talvez passe a ser possível fazer vários tipos de estilização.