No ofrece galletas espeluznantes

Las galletas son mejores cuando están frescas, así que ¿cuáles son las recetas más recientes para asegurarse de que puedas seguir disfrutando la tenebrosa temporada sin galletas nacidas?

Las galletas son mejores cuando están frescas, así que ¿cuáles son las recetas más recientes para asegurarte de que puedes disfrutar de esta temporada espeluznante sin galletas crudas?

Estamos en camino de eliminar de forma gradual las cookies de terceros en la plataforma web. Ese es un hito importante para abordar el seguimiento entre sitios, pero forma parte de un recorrido bastante largo. Echemos un vistazo a lo que hemos llegado y qué delicias tenemos en el futuro...

En la superficie, las cookies proporcionan un almacén de clave-valor simple que se envía entre el navegador y el servidor. Eso puede proporcionar una funcionalidad útil en un sitio, como guardar una preferencia: theme=bats o almacenar el ID de sesión de un usuario que accedió.

Una galleta de terceros con un valor simple como theme=bats o fav_pumpkins=us-nyc

Si esa cookie se usa en el mismo sitio que la configura, tendemos a llamarla cookie propia. Si se usa como parte de un sitio diferente al que la configuró, lo llamamos cookie de terceros. Por ejemplo, mi cookie theme=bats será de origen si visito el mismo sitio que la configuró, pero si está incluida en un iframe o en otro recurso entre sitios como parte de un sitio diferente, sería una cookie de terceros.

El problema con las cookies de terceros es que pueden habilitar el seguimiento entre sitios. En lugar de configurar algo como un tema, el servicio compartido puede almacenar un identificador completo allí. Ese mismo identificador se envía cuando navegas por diferentes sitios que incluyen cookies de servicios compartidos, lo que significa que un servicio puede observar y vincular tu actividad en esos sitios.

Una cookie de terceros con un ID único que permite que el sitio de terceros realice un seguimiento de un usuario en la Web

Cookies propias de forma predeterminada

Ya avanzamos en nuestro recorrido hasta aquí. Antes, solo se configuraba una cookie simple: theme=pumpkins se enviaba en todos los contextos: el mismo sitio o entre sitios. La mayoría de los sitios solo desean que las cookies se envíen en un contexto del mismo sitio. Esto se puede controlar mediante el atributo SameSite en la cookie. Por ejemplo:

Set-Cookie: theme=bats; SameSite=Lax

Esto le indica al navegador que solo envíe la cookie si el recurso coincide con el sitio de nivel superior. Sin embargo, eso significaba que el sitio tenía que especificar cuándo quería la cookie propia. Eso es un poco inverso en términos de seguridad, como deberías preguntar cuando quieras obtener más privilegios, no solo obtenerlos de forma predeterminada.

Por lo tanto, ahora, SameSite=Lax es el valor predeterminado. Si solo configuras theme=bats, solo se enviará en un contexto del mismo sitio.

El valor predeterminado de SameSite=Lax impide que se envíe una cookie en un contexto de terceros.

Si quieres una cookie entre sitios o de terceros (quizás necesitas que el tema se muestre en un widget incorporado), debes especificar lo siguiente:

Set-Cookie: theme=bats; SameSite=None; Secure
El valor explícito de SameSite=None marca la cookie que se enviará en contextos de varios sitios.

Esto le indica al navegador que quieres que la cookie se envíe en cualquier contexto de sitios cruzados, pero queremos restringirla solo a conexiones seguras.

Incluso galletas propias más sabrosas

Si bien la configuración predeterminada mejoró un poco, todavía hay espacio para que mejores esa receta. Esta es una muestra rápida:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

Esto te brindará una cookie propia que se mantendrá restringida a un solo dominio, conexiones seguras, sin acceso mediante JavaScript, vencerá automáticamente antes de que quede obsoleto y (por supuesto) solo se permite en contextos del mismo sitio.

¡Las galletas saben mejor con CHIPS!

Uno de los aspectos mágicos de la Web es la capacidad de componer varios sitios juntos. Supongamos que quiero crear un widget de mapa que permita a otros sitios mostrar los mejores recorridos por el huerto de calabazas o las rutas para pedir dulces. Mi servicio usa una cookie para permitir que los usuarios almacenen su progreso en la ruta. El problema es que esa misma cookie de terceros se enviará tanto en el sitio del huerto de calabazas como en el sitio de truco o trato. No quiero hacer un seguimiento de los usuarios entre sitios, pero el navegador solo usa un frasco de cookies. No hay forma de separar ese uso.

Las cookies entre sitios con SameSite=None se almacenan en un frasco de galletas compartido.

Ahí es donde entra en juego la propuesta de cookies con estado particionado independiente (CHIPS). En lugar de un jar de cookies compartido, hay un jar de cookies separado y particionado para cada sitio de nivel superior. Los sitios aceptarían esta función mediante el atributo Partitioned en su cookie.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
El atributo particionado en la cookie crea depósitos de cookies independientes por sitio de nivel superior.

En lugar de tener que compartir ese frasco de galletas, todos tienen el suyo. Más simple, más segura y más higiénica.

Acabamos de enviar el Intent de envío para Cookies con estado particionado independiente (CHIPS) en Chrome 109, lo que significa que estarán disponibles para la prueba en versión beta en diciembre y, luego, estarán listos para la versión estable en enero de 2023. Por lo tanto, si buscas un propósito de año nuevo para mejorar la receta de galletas de tu sitio, mira si puedes comenzar a agregar CHIPS a las cookies entre sitios.

Invitación para galletas a la fiesta con conjuntos propios

Con respecto a los comentarios de los desarrolladores, muchos de ustedes también aclararon que hay situaciones en las que comparten servicios entre sitios que controlas y que quieren poder usar cookies en ellos, pero no permitir que se envíen en contextos de terceros reales. Por ejemplo, quizás tienes pretty-pumpkins.com y pretty-pumpkins.co.uk. Es posible que tengas un sistema de inicio de sesión único basado en cookies que funcione en estos sitios. CHIPS no funcionaría porque solo tendría que acceder a ambos sitios. El requisito es que necesite la misma cookie en todos los sitios relacionados.

Estamos trabajando en la propuesta de Conjuntos propios para tratar de que esto sea posible. Pasamos una prueba de origen y muchos debates de la comunidad que nos llevaron a la versión más reciente, cuyo objetivo es lograr lo siguiente:

  • Brinda a las organizaciones una forma de definir un grupo de sitios que deben compartirse entre sí.
  • Aprovecha la API de Storage Access para solicitar acceso a cookies entre sitios dentro de ese conjunto propio.
Los Conjuntos propios permiten compartir un frasco de cookies solo entre sitios relacionados

Estas cookies aún se están cocinando, pero puedes consultar la guía para desarrolladores de conjuntos propios cuando haya más que probar, o bien puedes pasar a la propuesta de WICG/conjuntos propios si deseas contribuir al debate.

No dejes que tus galletas se vuelvan obsoletas.

Nuestro objetivo es comenzar a eliminar de forma gradual la compatibilidad de las cookies de terceros en Chrome a partir de 2024. Hay tiempo para prepararse, pero deberías comenzar a planificar ahora mismo.

  1. Audita tu código para detectar cookies con SameSite=None. Estas son las cookies que requerirán actualizaciones.
  2. Si no tienes cookies de terceros, asegúrate de que las del mismo sitio usen las mejores recetas de cookies propias.
  3. Si usas esas cookies en un contexto incorporado y completamente contenido, investiga y prueba la propuesta de CHIPS.
  4. Si necesitas esas cookies en varios sitios que forman un grupo cohesivo, investiga la propuesta de conjuntos propios.
  5. Si ninguna de estas opciones te cubre, deberás investigar las otras propuestas de Privacy Sandbox en las que desarrollamos APIs con propósitos específicos para casos de uso individuales que no dependen del seguimiento entre sitios.

Esta es solo una breve descripción general, y seguiremos compartiendo más novedades y orientación a medida que avance el trabajo. Si tienes preguntas, problemas o deseas compartir los resultados de tu trabajo, tenemos muchas rutas para que te comuniques con nosotros.

Así que recuerda: las galletas pueden ser deliciosas, pero solo unas pocas a la vez y definitivamente no intenten robar las de nadie más.