Creé una extensión de Chrome y desde popup.js llamé al script PHP (Uso de Xhttprequest) que lee la cookie. Me gusta esto:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
Pero recibo esta advertencia por errores en las extensiones.
Se configuró una cookie asociada con un recurso entre sitios en (Aquí está mi dominio) sin el
SameSite
atributo. Una versión futura de Chrome solo entregará cookies con solicitudes entre sitios si están configuradas conSameSite=None
ySecure
. Puede revisar las cookies en las herramientas de desarrollador en Aplicación> Almacenamiento> Cookies y ver más detalles en https://www.chromestatus.com/feature/5088147346030592 y https://www.chromestatus.com/feature/5633521622188032 .
Traté de crear una cookie como esta, pero no me ayudó.
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);
Siguiendo las instrucciones de esta pregunta.
setcookie
reemplazo que requiere un argumento adicional$sameSite
. El argumento puede serNone
,Lax
oStrict
. Una interfaz OOP también está disponible.Respuestas:
También estoy en una "prueba y error" para eso, pero esta respuesta de Github de Google Chrome Labs me ayudó un poco. Lo definí en mi archivo principal y funcionó, bueno, solo para un dominio de terceros. Todavía estoy haciendo pruebas, pero estoy ansioso por actualizar esta respuesta con una mejor solución :)
Si tiene PHP hasta 7.2, como lo hace mi servidor:
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
O si su host ya está actualizado a 7.3, puede usar:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
Otra cosa que puede probar para verificar las cookies es habilitar el indicador a continuación, que, en sus propias palabras, "agregará mensajes de advertencia de la consola para cada cookie potencialmente afectada por este cambio":
chrome://flags/#cookie-deprecation-messages
Vea el código completo en: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md , también tienen el código
same-site-cookies
.fuente
Cuando llegue la nueva función, las
SameSite=None
cookies también deben marcarse comoSecure
o serán rechazadas.Se puede encontrar más información sobre el cambio en las actualizaciones de cromo y en esta publicación de blog
Nota : no está directamente relacionado con la pregunta, pero podría ser útil para otros que llegaron aquí, ya que fue mi preocupación al principio durante el desarrollo de mi sitio web:
si está viendo la advertencia de la pregunta que enumera algunos sitios de terceros (en mi caso fue google.com, ¿eh?), eso significa que deben solucionarlo y no tiene nada que ver con su sitio. Por supuesto, a menos que la advertencia mencione su sitio, en cuyo caso agregar
Secure
debería solucionarlo.fuente
fuente
Terminé arreglando nuestra instalación de Ubuntu 18.04 / Apache 2.4.29 / PHP 7.2 para Chrome 80 instalando mod_headers:
Agregar la siguiente directiva a nuestras configuraciones de Apache VirtualHost:
Y reiniciando Apache:
Al revisar los documentos ( http://www.balkangreenfoundation.org/manual/en/mod/mod_headers.html ) noté que la condición "siempre" tiene ciertas situaciones en las que no funciona desde el mismo grupo de encabezados de respuesta. Por lo tanto, no usar "siempre" es lo que funcionó para mí con PHP, pero los documentos sugieren que si desea cubrir todas sus bases, puede agregar la directiva con y sin "siempre". No he probado eso.
fuente