Nuevo valor allow-same-site-none-cookies de la zona de pruebas a partir de Chrome 135

Natalia Markoborodova
Natalia Markoborodova

A partir de Chrome 135, puedes usar el nuevo valor sandbox: allow-same-site-none-cookies. Cuando se especifica esta política y no están disponibles las cookies de terceros, el navegador solo enviará cookies SameSite=None en solicitudes HTTP que provengan de iframes en zona de pruebas propios.

¿Qué es un iframe en zona de pruebas?

Los iframes en zona de pruebas son iframes con restricciones especiales. Se consideran que tienen un origen null, opaco. De forma predeterminada, las funciones potencialmente dañinas, como las secuencias de comandos, los formularios y las ventanas emergentes, no están disponibles en los iframes de zona de pruebas.

Usa el atributo sandbox para especificar qué funciones debe tener disponible un iframe en la zona de pruebas. Por ejemplo:

 <iframe sandbox="allow-scripts" src="example-sandboxed-frame.html"/>

El entorno de pruebas siempre es una buena idea, ya que te permite seleccionar de forma detallada los permisos necesarios para que el contenido incorporado se cargue correctamente y, al mismo tiempo, limita el alcance de los posibles exploits.

¿Por qué necesitamos esta nueva política?

Antes de la introducción de allow-same-site-none-cookies, podías configurar dos situaciones de cookies dentro de un iframe en zona de pruebas:

  • Sin el token allow-same-origin en el atributo sandbox, el origen del iframe se serializa como null, lo que hace que todas las solicitudes de la página en la zona de pruebas sean multisitio. En este caso, solo se incluirán las cookies con SameSite=None en las solicitudes.
  • Con el token allow-same-origin en el atributo sandbox, las solicitudes se consideran que provienen del origen real del iframe, lo que permite que se envíen cookies con cualquier valor de SameSite.

Con las cookies de terceros bloqueadas, un iframe en zona de pruebas que no tiene allow-same-origin no puede enviar ninguna cookie, a menos que habilites allow-same-site-none-cookies.

Un iframe con allow-same-origin podrá incluir cookies en las solicitudes del mismo sitio, incluso cuando se bloqueen las cookies de terceros. Sin embargo, todo el contenedor de cookies del origen estaría expuesto a actividad web potencialmente maliciosa.

Con allow-same-site-none-cookies, un iframe puede enviar cookies SameSite=None en solicitudes HTTP, mientras que no se incluirán las cookies SameSite=Strict y SameSite=Lax potencialmente sensibles.

Ejemplo práctico

Considera un sitio, practice-coding.example, que permite a los usuarios crear y ejecutar proyectos de codificación personalizados, además de incorporar el código de otros usuarios. Para usar el servicio, los usuarios deben acceder, lo que hace que se establezca una cookie de sesión SameSite=Strict.

Otro usuario crea un proyecto, practice-coding.example/cookie-theft, que otros usuarios pueden incorporar sin saberlo como un iframe en sus proyectos. Si las cookies SameSite=Strict y SameSite=Lax están expuestas al iframe practice-coding.example/cookie-theft, el usuario malicioso podría robar las cookies de sesión de otros usuarios.

En este caso, es posible que el propietario del sitio desee restringir el acceso a las cookies potencialmente sensibles. Sin embargo, es posible que deseen permitir las cookies de SameSite=None dentro de iframes en zona de pruebas. Por ejemplo, el iframe en zona de pruebas de practice-coding.example/coding-interview podría requerir cookies de SameSite=None para permitir que los candidatos revisen su código. allow-same-site-none-cookies evita exponer todo el contenedor de cookies y, al mismo tiempo, permite de forma selectiva las cookies SameSite=None necesarias.

¿Cómo puedo permitir solo SameSite=None dentro de los marcos de zona de pruebas propios?

Para habilitar las cookies SameSite=None en las solicitudes de páginas propias en zona de pruebas, especifica el token allow-same-site-none-cookies en la etiqueta de iframe. Por ejemplo:

 <iframe sandbox="allow-same-site-none-cookies" src="example-sandboxed-page.html"/>

También puedes establecer una política allow-same-site-none-cookies con un encabezado HTTP Content-Security-Policy:

Content-Security-Policy: sandbox allow-same-site-none-cookies;

Pruébalo con nuestra demostración.

Interactúa y comparte comentarios

Informa un problema para compartir comentarios o informar problemas, o únete a la discusión en GitHub.