Qué son y cómo funcionan las cookies
Una cookie es un pequeño bloque de datos, creado por un servidor web, que recibe el navegador cuando accedemos a esa web. El navegador lo almacena en su caché, asociado al dominio del sitio web. En posteriores visitas al mismo sitio web con el mismo dominio, esos datos se vuelven a enviar al servidor automáticamente.
Las cookies son esenciales para ciertas funcionalidades de la web, ya que permiten almacenar información relativa al estado, de modo que convierten a la web en una plataforma con memoria.
Historia #
Antes de la existencia de las cookies, la web no tenía estado, lo cual imposibilitaba cosas tan habituales como hacer login o almacenar preferencias. En 1994 Netscape incorpora las cookies a su navegador web, y muy poco después le seguiría Internet Explorer.
Para qué sirven #
Una cookie no tiene por qué atentar contra la privacidad ni ser invasiva per sé; puede mejorar la experiencia de navegación. Por ejemplo, pensemos en las siguientes situaciones:
- Cuando hacemos una compra online y un item se añade al carrito y permanece ahí hasta que vamos a hacer el pago.
- Accedemos a un sitio web que nos ofrece opciones de configuración o personalización. Por ejemplo, elegir entre usar un tema claro u oscuro.
- Mantener una sesión abierta con una web, de modo que no tengamos que estar continuamente introduciendo nuestras credenciales.
En todos estos ejemplos entran en juego las cookies, que no son más que pequeños archivos de texto que almacenan las credenciales del usuario, o los items que ha añadido a su cesta de la compra, por seguir con los ejemplos anteriores. Estas cookies tienen un ciclo de vida estrictamente adaptado para estos fines, y desaparecen cuando el usuario efectúa la compra (o la descarta) o cuando cierra la sesión.
Sin embargo, en los últimos tiempos, y con la excusa de mejorar la experiencia de usuario, se ha producido un abuso en el uso de las cookies, ya que con ellas se puede llegar a rastrear la actividad del usuario.
Principales tipos de cookies #
Las cookies de autenticación se usan para comprobar si un usuario está logueado, y en su caso, determinar cuál es su identidad. Sin las cookies, los usarios tendrían que autenticarse en cada visita a cada página. La seguridad de una cookie de autenticación depende tanto del servidor que la genera como de la gestión que haga el navegador del usuario, y de si esta cookie viaja cifrada o a través de un canal cifrado. Existen vunerabilidades, que permitirían que una cookie sea leida por un atacante, lo cual le permitiría hacer una suplantación de identidad. Se trata de ataques XSS (cross-site scripting) y CSRF (cross-site request forgery).
Las cookies de seguimento (o de tracking), especialmente las de terceros, se usan habitualmente para recopilar información masiva acerca de los hábitos de navegación de los usuarios.
Propiedades de una cookie #
Si accedemos a las developer tools de nuestro navegador (F12) podremos ver las cookies asociadas al dominio actual, así como sus campos.
Campo | Objetivo | Ejemplo |
---|---|---|
Name | Nombre único para identificar la cookie (establecido por el servidor web. Siempre emparejado con el value | SessionID |
Value | Valor asociado al nombre (establecido por el servidor web). Siempre asociado con el name | sty1z3kz11mpqxjv648mqwlx4ginpt6c |
Domain | Establece el alcance. Puede ser para un dominio (afectaría a sí mismo y a todos sus subdominios) o para un único subdominio | .tinfoilismo.org |
Path | También establece el alcance. Ruta local para la cookie | / |
Expires/Max-age | Caducidad de la cookie | 2022-11-11T15:39:04.166Z |
Size | Tamaño en disco de la cookie, en bytes, típicamente es {Name+Value} | 91 |
HttpOnly | La cookie no puede ser accedida por el Javascript del lado del cliente | (indicado por un check) |
Secure | La cookie úncamente puede viajar a través de HTTPS | (indicado por un check) |
SameSite | Especifica si la cookie se envia a través de peticiones cross-site | none |
SameParty | Extiende la funcionalidad de SameSite a los dominios propios | (indicado por un check) |
Priority | Define la importancia de una cookie. Determina si debe ser eliminada o conservada | High |
Cokies de terceros #
Una limitación clave de las cookies es que, si son generadas por un sitio con un dominio determinado, no pueden ser accedidas por otro sitio con otro dominio. Entonces, ¿cómo es posible efectuar el rastreo a través de todos los sitios web que visita el usuario?
Pongamos el caso de Facebook. Al iniciar sesión, Facebook establece una cookie para recordar sus credenciales, igual que el resto de sitios. Esta sería una cookie normal. A priori, cuando visitamos otro sitio web, por ejemplo, un blog personal, Facebook no puede saberlo. Pero el propietario de este blog puede tener incrustado un botón de “Me gusta” de Facebook. Para mostrar este botón, es necesario obtener y ejecutar código de los servidores de Facebook. Pero este código, además de proveer la imagen, es capaz de generar una cookie a nombre de Facebook. De este modo, Facebook ya sabe que hemos visitado el blog en cuestión.
Evidentemente, esto no solo lo hace Facebook. Facebook puede convencer a mucha gente para poner este botón, ya que muchos blogueros querrán que su publicación tenga “likes” en la plataforma de la red social. Google también lo tiene fácil, suponiendo que el blog en cuestión muestre publicidad para obtener ingresos.
Al contrario que las cookies del propio sitio, las cookies de terceros son creadas por un sitio web cuyo dominio es diferente del que estamos visitando. Este tipo de cookies tienen en general como objetivo efectuar el tracking del usuario.
Supongamos que visitamos un sitio site1.com
que incrusta banners de ad.com
. Este último, además de los banners, establece una cookie, pero no para site1.com
, sino para ad.com
. Lo que hace es dejar un token en la cookie. Si ahora visitamos site2.com
, que también muestra banners y puede establecer o leer cookies de ad.com
. De este modo, ad.com
puede saber que un mismo usuario ha visitado site1.com
y site2.com
, pudiendo así establecer un patrón de comportamiento.
Alegando preocupación por la privacidad de los usuarios, Google ha decidido que su navegador Chrome dejará de permitir las cookies de terceros en el año 2022. El hecho de que sea el navegador predominante hará que las actuales técnicas publicitarias y de seguimiento queden obsoletas. Puede parecer una buena noticia, pero esta jugada de Google está más bien encaminada a controlar y monopolizar el mercado publicitario en la web mediante algo llamado FLoC.
Supercookies #
También conocidas como cookies zombie o permacookies. El uso de supercookies para tracking se detalla en este paper[^paper-supercookies].
supercookies de botones “me gusta” de facebook supercookies por ISPs
Regulación #
Si bien hay una regulación de cookies y se pide a los sitios web que expliciten qué información obtienen de sus visitantes, no se explica nunca con un lenguaje suficientemente accesible, y son habituales los dark patterns que incitan al usuario a aceptar todo tipo de rastreadores. Por ejemplo, teniendo que desmarcar decenas de casillas, una por una, en cada visita a una web, ofreciendo botones pequeños, con colores apagados y poco accesibles para no aceptar.
Referencias #
Hussein Nasser https://www.youtube.com/watch?v=m4vatwFryI8 https://www.youtube.com/watch?v=sovAIX4doOE https://www.youtube.com/watch?v=aUF2QCEudPo https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
Computerphile https://www.youtube.com/watch?v=T1QEs3mdJoc https://www.youtube.com/watch?v=LHSSY8QNvew https://www.youtube.com/watch?v=_d0G6FZ_kR4