los SameSite attribute de El Set-Cookie El encabezado de respuesta HTTP le permite declarar si su cookie debe restringirse a un contexto propio o del mismo sitio.

Valores

los SameSite attribute acepta tres valores:

Lax

Las cookies pueden enviarse con navegaciones de nivel superior y se enviarán junto con la solicitud GET iniciada por el sitio web de un tercero. Este es el valor predeterminado en los navegadores modernos.

Strict

Las cookies solo se enviarán en un contexto propio y no se enviarán junto con las solicitudes iniciadas por sitios web de terceros.

None

Las cookies se enviarán en todos los contextos, es decir, se permite el envío de origen cruzado.

None solía ser el valor predeterminado, pero las versiones recientes del navegador Lax el valor predeterminado para tener una defensa razonablemente sólida contra algunas clases de falsificación de solicitudes entre sitios (CSRF) ataques.

None requiere el Secure attribute en las últimas versiones del navegador. Vea abajo para más información.

Corregir advertencias comunes

SameSite=None requiere Secure

La siguiente advertencia puede aparecer en su consola:

Algunas cookies hacen un mal uso del “mismo sitio” attribute, por lo que no funcionará como se esperaba.
Galleta “myCookie“Rechazado porque tiene el” sameSite = none ” attribute pero le falta el “seguro” attribute.

La advertencia aparece porque cualquier cookie que solicita SameSite=None pero no esta marcado Secure será rechazado.

Set-Cookie: flavor=choco; SameSite=None

Para solucionar este problema, deberá agregar el Secure attribute para usted SameSite=None galletas.

Set-Cookie: flavor=choco; SameSite=None; Secure

A Secure La cookie solo se envía al servidor con una solicitud encriptada a través del protocolo HTTPS. Tenga en cuenta que los sitios inseguros (http:) no puede configurar cookies con el Secure directiva.

Cookies sin SameSite predeterminado a SameSite=Lax

Las versiones recientes de los navegadores modernos proporcionan un valor predeterminado más seguro para SameSite a sus cookies, por lo que puede aparecer el siguiente mensaje en su consola:

Algunas cookies hacen un mal uso del “mismo sitio” attribute, por lo que no funcionará como se esperaba.
Galleta “myCookie“Tiene la política” sameSite “establecida en” lax “porque le falta un” sameSite ” attributey “sameSite = lax” es el valor predeterminado para este attribute.

La advertencia aparece porque el SameSite La política para una cookie no se ha especificado explícitamente:

Set-Cookie: flavor=choco

Si bien puede confiar en los navegadores modernos para aplicar SameSite=Lax automáticamente, debe especificarlo explícitamente para comunicar claramente su intención, que SameSite La política se aplica a su cookie. Esto también mejorará la experiencia en todos los navegadores, ya que no todos están predeterminados Lax todavía.

Set-Cookie: flavor=choco; SameSite=Lax

Ejemplo:

RewriteEngine on
RewriteBase "/"
RewriteCond "%HTTP_HOST"       "^example.org$" [NC]
RewriteRule "^(.*)"              "https://www.example.org/index.html" [R=301,L,QSA]
RewriteRule "^(.*).ht$"         "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule;01;https://www.example.org;30/;SameSite=None;Secure]
RewriteRule "^(.*).htm$"        "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule;02;https://www.example.org;30/;SameSite=None;Secure]
RewriteRule "^(.*).html$"       "index.php?nav=$1 [NC,L,QSA,CO=RewriteRule;03;https://www.example.org;30/;SameSite=None;Secure]
[...]
RewriteRule "^admin/(.*).html$" "admin/index.php?nav=$1 [NC,L,QSA,CO=RewriteRule;09;https://www.example.org:30/;SameSite=Strict;Secure]

Especificaciones

Especificación Título
RFC 6265, sección 4.1: Establecer cookies Mecanismo de gestión de estado HTTP
borrador-ietf-httpbis-rfc6265bis-05 Prefijos de cookies, cookies del mismo sitio y cookies estrictamente seguras

Compatibilidad del navegadorActualizar datos de compatibilidad en GitHub

Escritorio
Cromo Borde Firefox explorador de Internet Ópera Safari
Set-Cookie 12
HttpOnly 1 12 3 9 11 5
Max-Age 12 8
SameSite 51 dieciséis 60 No 39 13

13
Safari 13 en macOS 10.14 (Mojave), trata SameSite=None y valores inválidos como Strict. Esto se corrigió en la versión 10.15 (Catalina) y posteriores.
12
Golosinas SameSite=None y valores inválidos como Strict en macOS antes de 10.15 Catalina. Ver error 198181.
SameSite: SameSite=Lax 51 dieciséis 60 No 39 12
SameSite: Predeterminado en Lax 80 80 69Discapacitado

69Discapacitado
Deshabilitado a partir de la versión 69: esta función está detrás del network.cookie.sameSite.laxByDefault preferencia (debe establecerse en true). Para cambiar las preferencias en Firefox, visite about: config.
No 67 No
SameSite: SameSite=None 51 dieciséis 60 No 39 13

13
No es compatible antes de macOS antes de la versión 10.15 (Catalina).
SameSite: SameSite=Strict 51 dieciséis 60 No 39 12
SameSite: Se requiere un contexto seguro 80 80 69Discapacitado

69Discapacitado
Deshabilitado a partir de la versión 69: esta función está detrás del network.cookie.sameSite.noneRequiresSecure preferencia (debe establecerse en true). Para cambiar las preferencias en Firefox, visite about: config.
No 67 No
Prefijos de cookies 49 79 50 No 36
Móvil
Vista web de Android Chrome para Android Firefox para Android Opera para Android Safari en iOS Internet de Samsung
Set-Cookie
HttpOnly 37 4 4
Max-Age
SameSite 51 51 60 41 13

13
12,2
Golosinas SameSite=None y valores inválidos como Strict en iOS antes de 13. Consulte error 198181.
5,0
SameSite: SameSite=Lax 51 51 60 41 12,2 5,0
SameSite: Predeterminado en Lax 80 80 No No No No
SameSite: SameSite=None 51 51 60 41 13 5,0
SameSite: SameSite=Strict 51 51 60 41 12,2 5,0
SameSite: Se requiere un contexto seguro 80 80 No No No No
Prefijos de cookies 49 49 50 36 5,0

Ver también

© 2005–2020 Mozilla y colaboradores individuales.
Con licencia de Creative Commons Attribution-ShareAlike License v2.5 o posterior.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite