En quoi la politique de Chrome en matière de cookies avec l'attribut <em>SameSite</em> affecte-t-elle mon intégration ?
À la suite de la mise à jour de Google Chrome sur sa politique en matière de cookies SameSite, certains marchands ont rencontré des difficultés lors du traitement de transactions 3DS redirigées dans le navigateur Chrome en raison de la configuration spécifique de leur intégration. Les marchands ont signalé des difficultés, notamment lors des situations suivantes :
- Les redirections 3DS1
- Les redirections 3DS2
Au sujet de la politique de Google Chrome concernant les cookies SameSite
Dans la toute dernière version de Chrome 80 et dans les versions ultérieures, Google Chrome applique un système de classement des cookies sécurisé par défaut. Les cookies sans attribut SameSite ne seront donc pas inclus dans un rappel de redirection POST. Les cookies n'ayant pas déclaré de valeur SameSite se verront attribuer la valeur par défaut « SameSite=Lax ». Seuls les cookies dont la valeur est « SameSite=None; Secure » seront disponibles dans des contextes tiers, sous réserve qu'ils soient accessibles à partir d'une connexion sécurisée.
Comment en déterminer l'incidence sur mon intégration ?
L'impact sur votre intégration dépend de votre utilisation des cookies pour conserver les informations sur la transaction lors du traitement des autorisations 3DS1 ou pour rediriger les autorisations 3DS2. Un cas client fréquent est, par exemple, l'attribut paymentData qui est stocké dans les cookies.
Comment résoudre le problème ?
Nous vous recommandons de contrôler votre intégration afin de vous assurer non seulement de votre capacité à traiter les demandes de redirection POST sur la version actualisée du navigateur Chrome, mais également de la possibilité de les traiter sur des navigateurs plus anciens. Veuillez noter que, tout comme dans les navigateurs Safari et Firefox, le champ SameSite n'est pas encore pris en charge par de nombreux anciens navigateurs.
Comment mettre en œuvre SameSite (à partir de web.dev/samesite-cookie-recipes)
Pour les cookies nécessaires dans un contexte avec tiers, vous devrez vous assurer qu'ils portent l'attribut SameSite=None; Secure. Veuillez noter que les deux attributs doivent être utilisés ensemble. Si vous indiquez seulement None sans Secure, le cookie sera rejeté. Toutefois, certaines différences de mise en œuvre des navigateurs peuvent s'avérer incompatibles les unes avec les autres. Vous devrez donc utiliser certaines des stratégies d'atténuation décrites dans la section Traitement des clients incompatibles ci-dessous.
Set-Cookie: third_party_var=value; SameSite=None; Secure
Traitement des clients incompatibles (à partir de web.dev/samesite-cookie-recipes)
Étant donné que ces modifications visant à inclure l'attribut None et à mettre à jour le comportement par défaut sont encore relativement récentes, les navigateurs présentent des incohérences quant à la manière dont ces modifications sont traitées. Vous pouvez consulter la page des mises à jour sur chromium.org pour les problèmes connus. Cependant, il n'est pas possible de dire si cette liste est exhaustive. Bien que ce ne soit pas parfait, il existe des solutions de rechange que vous pouvez utiliser pendant cette phase transitoire. En règle générale, il convient néanmoins de traiter les clients incompatibles comme des cas particuliers. Il ne faut pas créer d'exception pour les navigateurs qui appliquent les règles les plus récentes.
Commencez par configurer les nouveaux et les anciens cookies :
Set-cookie: 3pcookie=value; SameSite=None; Secure
Set-cookie: 3pcookie-legacy=value; Secure
Les navigateurs qui adoptent le nouveau comportement définiront le cookie avec la valeur tandis que les autres navigateurs pourraient l'ignorer ou le configurer incorrectement. Toutefois, ces mêmes navigateurs définiront le cookie 3pcookie-legacy. Lors du traitement des cookies intégrés, le site doit d'abord vérifier la présence du nouveau style de cookie et, s'il n'est pas trouvé, se rabattre sur l'ancien cookie.
Quelques exemples dans diverses langues (à partir de github.com/GoogleChromeLabs/samesite-examples)
Autres liens utiles
Les documents Chrome suivants vous aideront dans l'éventualité où des modifications seraient nécessaires dans le cadre de votre intégration : recettes de cookies SameSite, exemples de SameSite 3DSv1.0 avec diagrammes de séquence et Comment gérer les clients incompatibles.
Si vous souhaitez faire des essais sur votre nouveau flux 3DS et que vous ne pouvez pas vérifier si votre solution fonctionne, veuillez activer les drapeaux expérimentaux (chrome://flags) et régler toutes les fonctions nommées « SameSite » à « Enabled ». Veuillez vous reporter à la section Conseils et astuces pour les essais et le débogage des cookies SameSite pour plus d'informations sur la manière de réaliser des essais sur les intégrations utilisant les cookies SameSite de Chrome.