Je sais qu'un cookie avec le drapeau secure
ne sera pas envoyé via une connexion non cryptée. Je me demande comment cela fonctionne en profondeur.
Qui est responsable de déterminer si le cookie sera envoyé ou non?
Le client définit ceci uniquement pour les connexions chiffrées et cela est défini dans RFC 6265 :
L'attribut Sécurisé limite la portée du cookie aux canaux "sécurisés" (où "sécurisé" est défini par l'agent d'utilisateur). Lorsqu'un cookie a l'attribut Secure, l'agent d'utilisateur l'inclura dans une requête HTTP uniquement si la requête est transmise sur un canal sécurisé (généralement HTTP via le protocole TLS (Transport Layer Security) [RFC2818]).
Bien qu'apparemment utile pour protéger les cookies des attaquants actifs du réseau, l'attribut Secure ne protège que la confidentialité du cookie. Un attaquant du réseau actif peut écraser les cookies sécurisés provenant d'un canal non sécurisé, en perturbant leur intégrité (voir la section 8.6 pour plus de détails).
Juste un autre mot sur le sujet:
Omettre secure
parce que votre site Web example.com
est complètement https n'est pas suffisant.
Si votre utilisateur atteint explicitement http://example.com
, ils seront redirigés vers https://example.com
mais c'est déjà trop tard; la première demande contenait le cookie.