- Para resolver el antiguo problema de seguridad web de la "exposición del historial de navegación del usuario" mediante el estilo de enlaces
:visited, se introduce una nueva función
- A partir de Chrome 136, al "particionar" el historial de
:visited, se mejora la arquitectura para bloquear estos ataques de raíz
- Se mantiene la función de distinguir visualmente los enlaces visitados, pero está diseñada para que otros sitios no puedan abusar de ella
Explicación del método de partición de enlaces :visited
- En el método anterior, al hacer clic en un enlace, este aparecía en estado
:visited en cualquier sitio
- Esto era una falla de seguridad de diseño que permitía a sitios maliciosos rastrear el historial de navegación del usuario
- Ejemplo: después de hacer clic en un enlace a Site-B desde Site-A, si Site-Evil tenía el mismo enlace, Site-B se mostraba como
:visited, revelando si el usuario lo había visitado
- En la nueva arquitectura, el historial de visitas solo se almacena para la combinación "sitio A + destino del enlace B"
- Es decir, en Site-Evil no se mostrará como
:visited porque el usuario no hizo clic en ese enlace allí
- Como resultado, el historial de visitas ya no se almacena de forma global, sino que se separa según "URL del enlace + sitio de nivel superior + origen del frame"
Cómo se manejan los enlaces dentro del mismo sitio
- Supongamos que un usuario que investiga tipos de metales hizo clic en las páginas de chrome y brass de
site.wiki desde metals.com
- Después, al visitar la página de gold de
site.wiki, los enlaces a chrome y brass no aparecerán como :visited (porque el contexto de clic fue diferente)
- Para mejorar esto, se introdujo una excepción para
self-links
- Los enlaces a subpáginas dentro del mismo sitio se mostrarán como
:visited aunque no se hayan hecho clic en el mismo contexto
- Esto se permite porque se considera que no hay exposición adicional de información, ya que el propio sitio puede rastrear de todos modos el historial de navegación del usuario dentro de ese sitio
- Sin embargo, esta excepción no se aplica a sitios de terceros ni a enlaces de terceros dentro de iframes
Estado de implementación de la función
1 comentarios
En GeekNews también quisimos probar
:visited, pero por temas de seguridad casi no había nada que se pudiera hacer, así que terminamos abandonándolo.Si todo esto se implementa, quizá sea posible hacer estilos mucho más variados.