:visited y sus limitaciones por seguridad y privacidad

Las particularidades del selector Css (pseudoclase) :visited en cuanto a las limitaciones de las propiedades que admite y su relación con la privacidad y seguridad del usuario.

:visited y sus limitaciones por seguridad y privacidad

Por Kseso ✎ 1
:visited y sus limitaciones por seguridad y privacidad

A estas alturas de todos es conocido que la pseudoclase :visited por oposición a :link es la empleada para diferenciar visualmente los enlaces ya seguidos por el usuario del resto. Una pequeña ayuda cuando hay una lista consecutiva de ellos.

También es conocido que el estado visitado es temporal, en cuanto que:

  • Si sales de una página al seguir un enlace y regresas a ella la pseudoclase :visited no ha sido guardada (o al menos no debería).
  • Transcurrido un tiempo, tras haberla aplicado, el navegador puede (y debería) dejar de aplicar los estilos definidos para :visited y estilizados como no visitado.

Otra particularidad de la pseudoclase :visited es que no todas las propiedades Css aplican. Estas son las que sí:

  • color
  • background-color
  • border-color
  • border-bottom-color
  • border-left-color
  • border-right-color
  • border-top-color
  • outline-color
  • column-rule-color
  • fill
  • stroke

Limitaciones del selector :visited

La cuestión es de dónde o por qué de estas limitaciones a la pseudoclase :visited. La respuesta la encontramos en los documentos del consorcio desde hace ya tiempo:

Para los autores de las hojas de estilos es factible abusae de las pseudoclases :link y :visited para saber, sin el consentimiento del usuario, qué sitios visitó.
Los agentes de usuario (navegadores) han de tratar a todos los enlaces como no visitados o implementar medidas para preservar la privacidad del usuario mientras los enlaces visitados y no visitados se renderizan de forma distinta.

En el sitio de MDN (Mozilla Developer Network) puedes hallar más información sobre este particular:

  1. Privacy and the :visited selector
  2. Preventing attacks on a user's history through CSS :visited selectors por L. David Baron
  3. Plugging the CSS history leak por Sid Stamm

Ramajero Argonauta, Enredique Amanuense de CSS.
#impoCSSible inside
Dicen que, en español, EsCss es el mejor blog de CSS. Posíblemente exageren.
@Kseso EsCss Don Kseso Kseso

Comentarios: 1

  1. Si es por seguridad, no habría que usar esa pseudoclase. Pero es muy cómoda para los que hacemos búsquedas paralelas (un mismo resultado nos puede aparecer en dos documentos, y nos ahorra abrirlo las dos veces). En los buscadores es indispensable.
    Estaba viendo que [code]querySelectorAll("a:visited")[/code] puede o mostrar todos los enlaces (visitados o no), o devolver una lista vacía. Depende del criterio del desarrollador.

    Me parece que la postura de dejar esto al usuario, a través de la configuración del navegador, es de momento la mejor. Hay gente a la que no le importa que lo perfilen usando sus sitios visitados, y sí le importa reconocer de una ojeada los sitios que ya vio anteriormente.

    ResponderEliminar

EsCss RSS del Blog RSSS Comentarios Humans.txt ᛯ Diseno por Kseso SiteMap