--- title: SameSite cookies slug: Web/HTTP/Headers/Set-Cookie/SameSite tags: - Cookies - HTTP - Reference - samesite translation_of: Web/HTTP/Headers/Set-Cookie/SameSite ---
L'attribut SameSite
de l'en-tête de réponse HTTP {{HTTPHeader("Set-Cookie")}} vous permet de déclarer si vos cookies doivent être restreints au site visité, à des tiers, ou à des sous-domaines du site actuel.
L'attribut SameSite
accepte trois valeurs possibles :
Lax
Les cookies sont transférables depuis le site actuel vers des sites de niveaux inférieurs et seront envoyés lors de requêtes GET initialisées par des sites tiers. C'est la valeur par défaut des navigateurs les plus récents.
Strict
Les cookies ne seront envoyés qu'avec les requêtes effectuées sur le domaine de même niveau, et ne seront pas envoyées sur les requêtes vers des sites tiers.
None
Les cookies seront envoyés dans tous les contextes, rendant possibles les requêtes de type cross-origin.
None
était la valeur par défaut des navigateurs, mais les navigateurs les plus récents optent désormais pour la valeur Lax
comme valeur par défaut pour une meilleure défense contre les attaques de type cross-site request forgery ({{Glossary("CSRF")}}).
None
requiert l'attribut Secure
dans les dernières versions des navigateurs les plus récents. Voir plus bas pour plus d'informations.
SameSite=None
requiert Secure
Une alerte de ce type peut apparaître dans la console de votre navigateur :
Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.
Cookie “myCookie” rejected because it has the “sameSite=none” attribute but is missing the “secure” attribute.
Cet alerte apparaît dans les cas où des cookies requièrent l'attribut SameSite=None
et ne sont pas marqués Secure
, étant donc refusés par le navigateur.
Set-Cookie: flavor=choco; SameSite=None
Pour corriger cette erreur, vous devez ajouter l'attribut Secure
à vos cookies marqués avec l'attribut SameSite=None
.
Set-Cookie: flavor=choco; SameSite=None; Secure
Un cookie Secure
ne sera envoyé au serveur que par le biais de requêtes utilisant le protocole HTTPS. Il est à noter que les sites non sécurisés (http:
) ne peuvent pas être marqués Secure
.
SameSite
utilisent SameSite=Lax
par défautLes dernières versions des navigateurs récents fournissent une valeur par défaut de SameSite
plus sécurisée pour vos cookies, il se peut donc que le message suivant apparaisse dans la console de votre navigateur :
Some cookies are misusing the “sameSite“ attribute, so it won’t work as expected.
Cookie “myCookie” has “sameSite” policy set to “lax” because it is missing a “sameSite” attribute, and “sameSite=lax” is the default value for this attribute.
Cette alerte apparait car la stratégie de SameSite
pour le cookie n'a pas été spécifiée explicitement :
Set-Cookie: flavor=choco
Même si vous pouvez compter sur la valeur par défaut SameSite=Lax
des navigateurs récents, vous devriez tout de même spécifier la stratégie à appliquer pour ce cookie afin de communiquer clairement votre intention. Cela améliorera également l'expérience sur les autres navigateurs si ceux-ci n'utilisent pas encore la valeur par défaut Lax
.
Set-Cookie: flavor=choco; SameSite=Lax
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]
Spécification | Titre |
---|---|
{{RFC("6265", "Set-Cookie", "4.1")}} | HTTP State Management Mechanism |
draft-ietf-httpbis-rfc6265bis-05 | Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("http.headers.Set-Cookie", 5)}}