Con la publicación de Chrome 84, el nuevo comportamiento de las cookies sin
atributo SameSite
ha llegado para quedarse, y el resto de
navegadores le seguirá de cerca. Te contamos cuales son estos cambios y cómo
detectarlos.
Puede que estos días te haya dejado de funcionar correctamente una aplicación
web, algún script de analítica personalizado, un entorno de desarrollo sin
certificado SSL o ese sitio al que accedes con un login externo de otra
aplicación que tenéis en la empresa. Si eres usuario de Google Chrome, lo más
probable es que sea por su nuevo comportamiento por defecto ante las cookies
sin atributo SameSite
.
Si esto te ha pasado, se siente ?♂️?. No seré yo quien te prive de usar un navegador como Firefox donde esto (todavía) no pasa, aunque creo que en este caso el toque de atención a desarrolladores por parte del equipo de Chrome es bueno, y me gustaría explicarte por qué.
El atributo SameSite
Antes de nada, me gustaría hacer un breve resumen y explicación de qué son
tanto el atributo SameSite
como el Secure
.
Tal y como se explican en MDN:
-
SameSite=<samesite-value>
: asegura que una cookie no debe ser enviada en peticiones cross_site, proporcionando alguna protección contra ataques CSRF.-
Strict
: el navegador envía la cookie sólo para las peticiones same-site (esto es, peticiones que se originan desde el mismo sitio que creó la cookie). Si la petición se originó desde una URL diferente a la actual, no se envían las cookies con el atributoSameSite=Strict
. -
Lax
: la cookie no se envía en peticiones cross-site, como llamadas para cargar imágenes o frames, pero se envía cuando un usuario accede a la URL desde un site externo, por ejemplo al seguir un enlace. -
None
: el navegador envía la cookie en peticiones same-site y cross-site.
-
-
Secure
: una cookie con este atributo sólo se envía al servidor cuando la petición se hace usando el protocolohttps
.
¿Qué diferencia práctica existe entre los modos Strict
y
Lax
?
Si en una web haces click en un enlace a un documento de una web que requiera
que hayas hecho login, y ese sitio tiene declarada su cookie como
Strict
, no podrás acceder al recurso hasta que vuelvas a hacer
login. Sí, aunque tengas la sesión abierta en otra pestaña, porque has
accedido a esa web desde un enlace externo y esto ha hecho que el navegador
bloquee el envío de tus cookies. Con el modo Lax
las cookies sí
se enviarían al hacer click en el enlace, pero tendríamos el mismo problema si
intentáramos cargar el recurso usando un iframe
o un
img
si lo que queríamos compartir era una imagen. Esto sucede
porque con Lax
sólo se envían las cookies en peticiones
top-level, aquellas que generan un cambio de URL en el navegador.
El atributo SameSite
está
ampliamente soportado
por los navegadores, que empezaron en algunos casos en 2016. Los que lo
soportan, actúan según lo esperado siempre que este atributo (y el
Secure
) estén correctamente configurados.
Nuevo comportamiento
Pese a que estas medidas de seguridad llevan mucho tiempo disponibles para los
desarrolladores web, no es que su adopción haya sido rápida precisamente. Para
propiciar la adopción del atributo SameSite
los navegadores
llevan tiempo preparando la transición hacia un
nuevo comportamiento de las cookies que permita aumentar la
seguridad y tu privacidad en la red. En Mayo de 2019 se lanzaba la propuesta
Incrementally Better Cookies, que propone 2 cosas:
-
Tratar las cookies como
SameSite=Lax
por defecto. Esto es: si el atributoSameSite
no se establece o no es válido, el valor predeterminado esSameSite=Lax
. -
Las cookies marcadas como
SameSite=None
deben también ser marcadas comoSecure
para habilitar su transferencia entre sitios.

Todos los navegadores han empezado a adoptar estas medidas de comportamiento por defecto, pero es Google Chrome quien ha estado llevando la iniciativa, con un roadmap y un timeline detallado. La transición en el caso de este navegador ha abarcado desde octubre de 2019 hasta agosto de 2020, con la publicación de Chrome 84, incluyendo una pequeña moratoria por culpa de la crisis sanitaria.
? Nota: en realidad Chrome todavía hace una excepción para
cookies sin atributo SameSite
establecidas
«hace menos de 2 minutos», permitiendo su envío con peticiones
POST
top-level cross-site. Este caso, conocido
como Lax + POST
, será deshabilitado en un futuro, aunque todavía
no hay fecha.
Podemos comprobar el nuevo comportamiento de las cookies en nuestros navegadores con una herramienta como SameSite ? Sandbox.
En ella veremos que Chrome es el único a día de hoy que cumple todos los casos
de uso del nuevo comportamiento, notablemente
rechazando aquellas cookies con SameSite=None
sin el atributo
Secure
, que es precisamente lo que podría ocasionar la rotura de alguna web o
integración.
El resto de navegadores no implementan todavía los bloqueos en la creación de
cookies que suponen estas nuevas medidas de seguridad, por lo que todavía son
posibles los escenarios escribir una cookie legible por terceros sin el
atributo Secure
.
Por ahora estos navegadores sólo ofrecen advertencias para desarrolladores, que indican que si no se adaptan a los nuevos cambios, las cookies afectadas dejarán de funcionar en una futura versión:
El resto de navegadores basados en Chromium/Blink proporcionan información adicional al encontrar cookies problemáticas:
Conclusiones
En definitiva, el nuevo comportamiento pone el acelerador en la adopción de unas medidas de seguridad básicas que llevaban tiempo estando disponibles. Y reforzar la seguridad en internet siempre es buena idea.
¿Qué deberías hacer? Si tienes webs que hagan uso de cookies propias o tengan social-login/sign-on de terceros (uno de los típicos escenarios que ha estado dando fallos) no estaría de más que comprobaras cuanto antes si tiene todas tus cookies en orden en caso de que todavía no lo hayas hecho. Tus usuarios de Chrome y «en breve» todos los habidos y por haber te lo agracederán.
The Cookies They Are a-Changin’ ?