web-dev-qa-db-fra.com

Comment fonctionne l'indicateur de cookie "sécurisé"?

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?

89
ted

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).

83
Cratylus

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.

42
Alain Tiemblo