Transición de cookies no particionadas a particiones particionadas

Cuando hagas la transición de tu sitio a cookies particionadas, es posible que encuentres comportamiento inesperado si una cookie particionada y no particionada con la misma están presentes para cualquier cliente.

Configurar una cookie particionada no anulará ni reemplazará una existente cookie no particionada con el mismo nombre. Ambos existirán, siempre y cuando los socios las cookies están habilitadas, pero en contenedores de cookies separados. Cuando las cookies de terceros se inhabilitado, solo se aceptará el particionado. Si ambas cookies son no es posible saber de forma programática cuál está particionada y cuál no, y esto puede generar un comportamiento inesperado.

Existen dos opciones posibles para abordar este problema: 1) Haz que la cookie que reemplazas caduque 2) Cómo cambiar el nombre de las cookies

Consideraciones clave

A medida que realizas la transición a cookies particionadas, ten en cuenta lo siguiente:

  1. No hay forma de determinar de manera programática si una cookie es particionadas o no particionadas. Sin embargo, puedes determinar el estado particionado de la cookie en las Herramientas para desarrolladores de Chrome.
  2. Las cookies particionadas no reemplazan las cookies no particionadas: dos cookies que sean exactamente iguales (es decir, que tengan los mismos atributos, como nombre, dominio o ruta de acceso) se tratarán como cookies independientes si solo una tiene el atributo Partitioned.
  3. Es mejor evitar una situación en la que haya tanto cookie y una cookie no particionada con el mismo nombre que se devuelve en misma llamada de red.

Haz que las cookies que reemplaces caduquen

Si tu sitio o servicio no puede admitir un cambio de nombre, puedes crear un cookie particionada nueva mientras caduca la cookie no particionada existente. Mientras que no hay forma de determinar si una cookie está particionada, Set-Cookie los encabezados sin un atributo Partitioned no afectarán las cookies que no estén particionadas.

En el siguiente ejemplo, se muestra cómo hacer que la cookie no particionada llamada example venza y dejar las cookies particionadas sin impacto, incluso si tienen el mismo nombre. Un nuevo se agregará o actualizará la cookie particionada llamada cookieName si ya está existe.

Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Cómo cambiar el nombre de las cookies

La forma más sólida de garantizar que exista una transición sin problemas es usar nombres diferentes para las cookies particionadas y no particionadas. Por ejemplo, tiene una cookie no particionada llamada “example”, puedes migrarlo a un cookie particionada.

Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

Dado que el vencimiento de la cookie no se expone de forma programática, no hay manera de configurar el vencimiento de la nueva cookie para que coincida el vencimiento de la cookie. Puede ser pragmático actualizar el valor de la cookie durante este proceso.

Mantén cookies particionadas y no particionadas

Durante el período de transición, considera mantener dos cookies sincronizadas separadas: uno que está particionado y otro que no. Por ejemplo, puedes tener tanto Cookies auth y auth-partitioned, donde esta última se configuró con el atributo Partitioned.

Intenta configurar ambas cookies cada vez que se actualice el valor.

  • En clientes que bloquean cookies de terceros, pero que aún no admiten CHIPS: no se aceptará ninguna cookie.
  • En clientes que bloquean cookies de terceros y admiten CHIPS: el auth la cookie se rechazará, pero la cookie auth-partitioned se aceptará.
  • En clientes que no bloquean las cookies de terceros, sin importar si admiten CHIPS: se aceptan auth y auth-partitioned.

Cuando tu aplicación necesite leer la cookie de autenticación, debes consultar por auth-partitioned primero; pero si debes revertir temporalmente cambio, puedes recurrir a buscar la cookie auth.

Una vez que hayas establecido que la mayoría de los usuarios tuvo las cookies actualizadas, la cookie auth-partitioned podría eliminarse y la Se podría agregar un atributo particionado a la cookie de autenticación normal.