Propriété SameSite
À partir de Chrome 51, un nouvel attribut SameSite a été ajouté aux cookies du navigateur pour prévenir les attaques CSRF et le suivi des utilisateurs (acquisition malveillante de cookies par un tiers), et pour limiter les cookies tiers, réduisant ainsi les risques de sécurité.
SameSite défini dans la RFC6265bis :La connexion hyperlientérée est visible.
À propos du résumé de l’attaque CSRF :
La propriété SameSite peut être définie à trois valeurs :Strict、Lax、None。
Strict: Interdire strictement aux tiers d’obtenir des cookies, et ne pas envoyer de cookies en aucune circonstance lorsqu’ils sont inter-sites ; Les cookies ne seront inclus que si l’URL de la page actuelle correspond à la cible de la requête. Cette règle est trop stricte et peut entraîner une très mauvaise expérience utilisateur. Par exemple, s’il y a un lien GitHub sur la page web actuelle, les utilisateurs n’auront pas de cookies GitHub lorsqu’ils cliqueront sur le saut, et le saut a toujours été déconnecté.
Laxiste: Empêcher le cross-site, il est dans la plupart des cas interdit d’obtenir des cookies, sauf pour les requêtes GET (liens, précharges, formulaires GET) qui naviguent vers l’URL de destination ; Une fois Strict ou Lax activé, les attaques CSRF sont pratiquement éliminées. Bien sûr, cela est à condition que le navigateur utilisateur prenne en charge la propriété SameSite.
Attribut SameSitePar défaut SameSite=Lax[Cette opération s’applique aux versions après que Google a publié la version stable Chrome 80 le 4 février 2019]
Aucun: Il n’y a pas de limite.
L’attribut Secure doit également être défini (les cookies ne peuvent être envoyés que via le protocole HTTPS), sinon il ne sera pas valide. [Cette opération s’applique aux versions après que Google a publié la version stable Chrome 80 le 4 février 2019]
Tester la propriété SameSite
Nous chargeons dynamiquement une image du site A via la console F12 au site A, le code est le suivant :
Nous pouvons voir d’après la requête réseau que lorsque le site A demande une image du nom de domaine du site A, ilEmportez des cookies(SameSite n’a pas de paramètres, c’est-à-dire Lax), comme montré sur l’image ci-dessous :
Nous trouvons aléatoirement un site B, puis chargeons dynamiquement l’image du site A et le trouvonsPas de porteN’importe quel cookie, comme montré ci-dessous :
(Fin)
|