¿Cómo decirle a PHP que use SameSite = None para las cookies entre sitios?


8

De acuerdo con el artículo aquí https://php.watch/articles/PHP-Samesite-cookies y documentación de PHP en https://www.php.net/manual/en/session.security.ini.php , solo hay 2 posibles opciones de configuración para esta nueva característica, agregada en PHP 7.3:

  1. session.cookie_samesite = Lax
  2. session.cookie_samesite = Estricto

Sin embargo, según la consola de Chrome, esto debe establecerse en "Ninguno":

Se estableció una cookie asociada con un recurso entre sitios en la URL sin el SameSiteatributo. Se ha bloqueado, ya que Chrome ahora solo entrega cookies con solicitudes entre sitios si están configuradas con SameSite=Noney Secure. Puede revisar las cookies en las herramientas de desarrollador en Aplicación> Almacenamiento> Cookies y ver más detalles en URL y URL.

Debido a esto, ya no puedo configurar cookies entre sitios. ¿Cuál es la solución?

Respuestas:


10

Puede establecer el valor en "Ninguno" usando ini_set. No hay verificación de que el valor sea compatible cuando se usa esa función:

ini_set('session.cookie_samesite', 'None');
session_start();

session_set_cookie_params también puede configurarlo:

session_set_cookie_params(['samesite' => 'None']);
session_start();

El informe de error para que esto sea compatible con php.ini está aquí .


3
Gracias: pude usar el siguiente código para deshacerme del mensaje de Chrome y permitir que las cookies entre sitios sigan funcionando: session_set_cookie_params (['samesite' => 'None', 'secure' => true]);
Dane Iracleous

1
cuidado, samesite = none no es compatible con los navegadores antiguos y rechazará la cookie por completo. comprobar esto y asegurarse de excluir a los navegadores antiguos cuando se establece un atributo samesite a su cookie de sesión: chromium.org/updates/same-site/incompatible-clients
Volkan Ulukut

Establecer session.cookie_samesite = Ninguno en php.ini NO funcionó en PHP 7.3.15. El uso de session_set_cookie_params como se describió anteriormente funcionó.
humbads


0

Este método puede ser útil para usted

Agregue los atributos del encabezado a nginxcontinuación Secure+SameSite=None

ubicación / {

proxy_cookie_path / "/; secure; SameSite = none";

}

¡Me está funcionando!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.