La définition de "même site" évolue pour inclure le schéma d'URL. Par conséquent, les liens entre les versions HTTP et HTTPS d'un site sont désormais considérés comme des requêtes intersites. Passez à HTTPS par défaut pour éviter les problèmes, si possible, ou lisez la suite pour savoir quelles valeurs d'attribut SameSite sont nécessaires.
Schemeful Same-Site modifie la définition d'un site (Web) en passant du domaine enregistrable uniquement au schéma + domaine enregistrable. Pour en savoir plus et obtenir des exemples, consultez Comprendre "même site" et "même origine".
Bonne nouvelle : si votre site Web est déjà entièrement mis à niveau vers HTTPS, vous n'avez rien à faire. Rien ne changera pour vous.
Si vous n'avez pas encore entièrement mis à niveau votre site Web, vous devez le faire en priorité.
Toutefois, si vos visiteurs passent de HTTP à HTTPS, certains scénarios courants et le comportement associé des cookies SameSite sont décrits plus loin dans cet article.
Vous pouvez activer ces modifications pour les tests dans Chrome et Firefox.
- À partir de Chrome 86, activez
about://flags/#schemeful-same-site. Suivez la progression sur la page d'état de Chrome. - À partir de Firefox 79, définissez
network.cookie.sameSite.schemefulsurtrueviaabout:config. Suivez la progression à l'aide de le problème Bugzilla.
L'une des principales raisons du passage à SameSite=Lax comme valeur par défaut pour les
cookies était de se protéger contre la falsification de requête intersites
(CSRF). Toutefois, le trafic HTTP non sécurisé permet toujours aux pirates informatiques de modifier les cookies qui seront ensuite utilisés sur la version HTTPS sécurisée du site. La création de cette limite intersite supplémentaire entre les schémas offre une protection supplémentaire contre ces attaques.
Scénarios courants entre les schémas
Navigation
La navigation entre les versions interschémas d'un site Web (par exemple, un lien de
http://site.example vers https://site.example) permettait auparavant d'envoyer
SameSite=Strict des cookies. Elle est désormais traitée comme une navigation intersite, ce qui signifie que les cookies SameSite=Strict seront bloqués.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bloqué | ⛔ Bloqué |
SameSite=Lax
|
✓ Autorisé | ✓ Autorisé |
SameSite=None;Secure
|
✓ Autorisé | ⛔ Bloqué |
Chargement des sous-ressources
Les modifications que vous apportez ici ne doivent être considérées que comme une solution temporaire pendant que vous travaillez à la mise à niveau vers HTTPS complet.
Les sous-ressources incluent les images, les iFrames et les requêtes réseau effectuées avec XHR ou Fetch.
Le chargement d'une sous-ressource interschémas sur une page permettait auparavant d'envoyer ou de définir des cookies SameSite=Strict ou SameSite=Lax. Cette opération est désormais traitée de la même manière que toute autre sous-ressource tierce ou intersite, ce qui signifie que tous les cookies SameSite=Strict ou SameSite=Lax seront bloqués.
De plus, même si le navigateur autorise le chargement de ressources à partir de schémas non sécurisés sur une page sécurisée, tous les cookies seront bloqués sur ces requêtes, car les cookies tiers ou intersites nécessitent Secure.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bloqué | ⛔ Bloqué |
SameSite=Lax
|
⛔ Bloqué | ⛔ Bloqué |
SameSite=None;Secure
|
✓ Autorisé | ⛔ Bloqué |
Envoi d'un formulaire
L'envoi entre les versions interschémas d'un site Web permettait auparavant d'envoyer des cookies définis avec SameSite=Lax ou SameSite=Strict. Cette opération est désormais traitée comme un POST intersite : seuls les cookies SameSite=None peuvent être envoyés. Vous pouvez rencontrer ce scénario sur les sites qui présentent la version non sécurisée par défaut, mais qui mettent à niveau les utilisateurs vers la version sécurisée lors de l'envoi du formulaire de connexion ou de paiement.
Comme pour les sous-ressources, si la requête provient d'un contexte sécurisé (par exemple, HTTPS) vers un contexte non sécurisé (par exemple, HTTP), tous les cookies seront bloqués sur ces requêtes, car les cookies tiers ou intersites nécessitent Secure.
| HTTP → HTTPS | HTTPS → HTTP | |
SameSite=Strict
|
⛔ Bloqué | ⛔ Bloqué |
SameSite=Lax
|
⛔ Bloqué | ⛔ Bloqué |
SameSite=None;Secure
|
✓ Autorisé | ⛔ Bloqué |
Comment tester mon site ?
Les outils et les messages pour les développeurs sont disponibles dans Chrome et Firefox.
À partir de Chrome 86, l'onglet "Problèmes des Outils de développement inclura les problèmes liés à Schemeful Same-Site. Les problèmes suivants peuvent être mis en évidence pour votre site.
Problèmes de navigation :
- "Migrez entièrement vers HTTPS pour continuer à envoyer des cookies sur les requêtes du même site" : avertissement indiquant que le cookie sera bloqué dans une prochaine version de Chrome.
- "Migrez entièrement vers HTTPS pour envoyer des cookies sur les requêtes du même site" : avertissement indiquant que le cookie a été bloqué.
Problèmes de chargement des sous-ressources :
- "Migrez entièrement vers HTTPS pour continuer à envoyer des cookies aux sous-ressources du même site" ou "Migrez entièrement vers HTTPS pour continuer à autoriser les sous-ressources du même site à définir des cookies" : avertissements indiquant que le cookie sera bloqué dans une prochaine version de Chrome.
- "Migrez entièrement vers HTTPS pour envoyer des cookies aux sous-ressources du même site" ou "Migrez entièrement vers HTTPS pour autoriser les sous-ressources du même site à définir des cookies" : avertissements indiquant que le cookie a été bloqué. Le dernier avertissement peut également s'afficher lors de l'envoi d'un formulaire.
Pour en savoir plus, consultez Conseils de test et de débogage pour Schemeful Same-Site.
À partir de Firefox 79, avec network.cookie.sameSite.schemeful défini sur true via about:config, la console affiche un message pour les problèmes liés à Schemeful Same-Site.
Les éléments suivants peuvent s'afficher sur votre site :
- "Le cookie
cookie_namesera bientôt traité comme un cookie intersite par rapport àhttp://site.example/, car le schéma ne correspond pas." - "Le cookie
cookie_namea été traité comme un cookie intersite par rapport àhttp://site.example/, car le schéma ne correspond pas."
Questions fréquentes
Mon site est déjà entièrement disponible sur HTTPS. Pourquoi des problèmes s'affichent-ils dans les Outils de développement de mon navigateur ?
Il est possible que certains de vos liens et sous-ressources pointent toujours vers des URL non sécurisées.
Pour résoudre ce problème, vous pouvez utiliser HTTP Strict-Transport-Security
(HSTS) et la includeSubDomain directive. Avec HSTS + includeSubDomain, même si l'une de vos pages inclut accidentellement un lien non sécurisé, le navigateur utilisera automatiquement la version sécurisée.
Que faire si je ne peux pas passer à HTTPS ?
Nous vous recommandons vivement de passer entièrement votre site à HTTPS pour protéger vos utilisateurs. Si vous ne pouvez pas le faire vous-même, nous vous suggérons de contacter votre fournisseur d'hébergement pour voir s'il peut vous proposer cette option. Si vous vous auto-hébergez, alors Let's Encrypt fournit un certain nombre d'outils pour installer et configurer un certificat. Vous pouvez également envisager de placer votre site derrière un CDN ou un autre proxy capable de fournir la connexion HTTPS.
Si cela n'est toujours pas possible, essayez de relâcher la protection SameSite sur les cookies concernés.
- Dans les cas où seuls les cookies
SameSite=Strictsont bloqués, vous pouvez réduire la protection àLax. - Dans les cas où les cookies
StrictetLaxsont bloqués et où vos cookies sont envoyés à une URL sécurisée (ou définis à partir de celle-ci), vous pouvez réduire les protections àNone.- Cette solution de contournement échouera si l'URL à laquelle vous envoyez des cookies (ou à partir de laquelle vous les définissez) n'est pas sécurisée. En effet,
SameSite=Nonenécessite l'attributSecuresur les cookies, ce qui signifie que ces cookies ne peuvent pas être envoyés ni définis via une connexion non sécurisée. Dans ce cas, vous ne pourrez pas accéder à ce cookie tant que votre site n'aura pas été mis à niveau vers HTTPS. - N'oubliez pas que cette solution n'est que temporaire, car les cookies tiers finiront par être complètement supprimés.
- Cette solution de contournement échouera si l'URL à laquelle vous envoyez des cookies (ou à partir de laquelle vous les définissez) n'est pas sécurisée. En effet,
Comment cela affecte-t-il mes cookies si je n'ai pas spécifié d'attribut SameSite ?
Les cookies sans attribut SameSite sont traités comme s'ils spécifiaient
SameSite=Lax et le même comportement interschémas s'applique également à ces cookies
bien. Notez que l'exception temporaire aux méthodes non sécurisées s'applique toujours. Pour en savoir plus, consultez la section Lax + POST mitigation dans la FAQ Chromium
SameSite
.
Comment les WebSockets sont-ils affectés ?
Les connexions WebSocket seront toujours considérées comme étant sur le même site si elles ont le même niveau de sécurité que la page.
Même site :
- Connexion
wss://à partir dehttps:// - Connexion
ws://à partir dehttp://
Intersite :
- Connexion
wss://à partir dehttp:// - Connexion
ws://à partir dehttps://