J'ai créé une extension chrome et à partir de popup.js j'ai appelé un script PHP (Using Xhttprequest) qui lit le cookie. Comme ça:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
Mais je reçois cet avertissement lors d'erreurs dans les extensions.
Un cookie associé à une ressource intersite sur (Voici mon domaine) a été défini sans l'
SameSite
attribut. Une future version de Chrome ne fournira des cookies avec des demandes intersites que s'ils sont définis avecSameSite=None
etSecure
. Vous pouvez consulter les cookies dans les outils de développement sous Application> Stockage> Cookies et voir plus de détails sur https://www.chromestatus.com/feature/5088147346030592 et https://www.chromestatus.com/feature/5633521622188032 .
J'ai essayé de créer un cookie comme celui-ci mais cela n'a pas aidé.
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);
En suivant les instructions de cette question.
setcookie
remplacement qui prend un argument supplémentaire$sameSite
. L'argument peut êtreNone
,Lax
ouStrict
. Une interface POO est également disponible.Réponses:
Je suis également dans un "essai et erreur" pour cela, mais cette réponse du Github de Google Chrome Labs m'a un peu aidé. Je l'ai défini dans mon fichier principal et cela a fonctionné - enfin, pour un seul domaine tiers. Je fais toujours des tests, mais je suis impatient de mettre à jour cette réponse avec une meilleure solution :)
Si vous avez PHP jusqu'à 7.2, comme mon serveur:
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Ou si votre hôte est déjà mis à jour en 7.3, vous pouvez utiliser:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
Une autre chose que vous pouvez essayer de vérifier les cookies est d'activer le drapeau ci-dessous, qui - selon leurs propres mots - "ajoutera des messages d'avertissement de console pour chaque cookie potentiellement affecté par cette modification":
chrome://flags/#cookie-deprecation-messages
Voir le code complet sur: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md , ils ont aussi le code pour
same-site-cookies
.la source
À mesure que la nouvelle fonctionnalité arrive, les
SameSite=None
cookies doivent également être marqués commeSecure
ou ils seront rejetés.On peut trouver plus d'informations sur le changement sur les mises à jour de chrome et sur ce blog
Remarque : pas tout à fait directement lié à la question, mais pourrait être utile pour d'autres qui ont atterri ici car c'était ma préoccupation au début lors du développement de mon site Web:
si vous voyez l'avertissement de la question qui répertorie certains sites tiers (dans mon cas, c'était google.com, hein) - cela signifie qu'ils doivent le réparer et que cela n'a rien à voir avec votre site. Bien sûr, à moins que l'avertissement ne mentionne votre site, auquel cas l'ajout
Secure
devrait le corriger.la source
la source
J'ai fini par corriger notre installation Ubuntu 18.04 / Apache 2.4.29 / PHP 7.2 pour Chrome 80 en installant mod_headers:
Ajout de la directive suivante à nos configurations Apache VirtualHost:
Et redémarrer Apache:
En examinant les documents ( http://www.balkangreenfoundation.org/manual/en/mod/mod_headers.html ), j'ai remarqué que la condition "toujours" a certaines situations où elle ne fonctionne pas à partir du même pool d'en-têtes de réponse. Donc, ne pas utiliser "toujours" est ce qui a fonctionné pour moi avec PHP mais les documents suggèrent que si vous voulez couvrir toutes vos bases, vous pouvez ajouter la directive avec et sans "toujours". Je n'ai pas testé ça.
la source