Los navegadores envían las cookies en todas las peticiones que realizan a los servidores. Los atacantes aprovechan este comportamiento para realizar acciones en tu nombre en sitios en los que estás logueado sin que te des cuenta.
Imagina por ejemplo que visitas un foro de Internet en el que los usuarios pueden añadir imágenes en su firma. Un atacante podría añadir algo como lo siguiente:
<img src="https://el-sitio-web-de-un-banco.com/transferir?cantidad=1000&receptor=usuario_malicioso">
La imagen no es realmente una imagen, sino una URL que hace que tu navegador realice una petición HTTP al sitio web de ese banco. Si eres cliente del banco y te logueaste con anterioridad, es posible que en tu navegador tengas alguna cookie del banco, que se enviará junto con la petición, lo que podría crearte problemas.
Lamentablemente las aplicaciones web no pueden diferenciar las peticiones HTTP
legítimas (las que tu realizas de manera consciente) y las ilegítimas (las que
realiza un atacante en tu nombre mediante engaños). Por todo ello, en el
RFC 6265 se ha definido un nuevo atributo para las cookies llamado
same-site
y que puede tener los siguientes valores:
same-site: strict
, no envía ninguna cookie en las peticiones que se realizan desde sitios diferentes a donde se originaron.same-site: lax
, similar al modostrict
, pero las cookies si que se envían cuando es el usuario el que realiza la petición externa de manera consciente, por ejemplo al pinchar en un enlace o enviar un formulario que use el métodoGET
de HTTP.
El modo strict
es el más seguro para el usuario, pero puede romper algunas
aplicaciones existentes. El modo lax
se ha definido como una solución temporal
de compromiso hasta que las aplicaciones se puedan actualizar para funcionar
bien con el modo strict
.
En el ejemplo anterior, si el banco añade el atributo same-site: strict
a sus
cookies, cuando el usuario visite el foro con esa imagen maliciosa, las cookies
del banco no se enviarán y no habrá ningún problema. Sin embargo, si el banco
añade el atributo same-site: lax
, la imagen maliciosa seguirá sin conseguir
que se envíen las cookies, pero si el usuario pincha en cualquier enlace del
foro que apunte al sitio web del banco, entonces las cookies si que se envían.
El soporte del atributo same-site es generalizado en la mayoría de navegadores modernos, por lo que ya puedes usarlo en tus aplicaciones.