Un cookie est-il sécurisé dans une connexion HTTPS?Un cookie est-il sécurisé dans une connexion HTTPS?
Répondre
Il est transmis vers et depuis le serveur crypté, il est donc aussi sûr que TLS est.
Vous pouvez également marquer un cookie comme destiné uniquement à la communication client-> serveur, et bloquer l'accès du Javascript côté client, en ajoutant le drapeau "HttpOnly" dans l'en-tête de réponse "Set-cookie".
modifier — et comme @Bruno l'indique, vous pouvez également utiliser le drapeau « sécurisé » (dans le même en-tête) pour indiquer au navigateur que le cookie ne doit être renvoyé au serveur dans les requêtes https. Comme @ D.W. fait remarquer dans un commentaire récent, cela peut être très important, car vous ne voulez probablement pas que vos cookies sécurisés importants soient probablement transmis sur des interactions non sécurisées (par exemple, avant de vous connecter à partir d'une partie publique non sécurisée d'un site). Si toutes les interactions avec un domaine de cookie particulier sont HTTPS, alors que peut-être pas nécessaire, mais il est une chose si simple qu'il n'y a aucune raison de ne pas le faire.
modifier — mise à jour, longtemps plus tard: utiliser le drapeau secure
:)
Cela vaut également la peine d'utiliser le témoin de cookie sécurisé. – Bruno
@Bruno oh oui bien sûr - Je vais étendre la réponse – Pointy
Cette réponse est erronée. Le cookie est seulement "aussi sécurisé que TLS" si le flag sécurisé est activé. Dans le cas contraire, un intercepteur passif ou potentiellement passif peut apprendre la valeur du cookie (car il sera envoyé en clair sur des sessions non cryptées si l'indicateur de sécurité n'est pas défini). –
Dans la connexion, oui. Mais il est toujours stocké sur la machine du client non cryptée.
Les cookies sont envoyés dans l'en-tête HTTP. Ainsi, ils sont aussi sécurisés que la connexion HTTPS qui dépend de nombreux paramètres SSL/TLS comme la force de chiffrement ou la longueur de la clé publique.
Veuillez garder à l'esprit qu'à moins de définir l'indicateur Secure
pour votre cookie, le cookie peut être transmis via une connexion HTTP non sécurisée. Il existe des attaques man-in-the-middle qui utilisent des cookies non sécurisés pour dérober des informations de session. Ainsi, sauf si vous avez une bonne raison de ne pas le faire, définissez toujours l'indicateur de sécurité pour les cookies lorsque vous souhaitez qu'ils soient uniquement transmis via HTTPS.
Non, pas automatiquement. En utilisant https://github.com/delight-im/PHP-Cookie ou les fonctions natives analogues, avec '$ Cookie-> setSecureOnly (true);' il sera * en sécurité contre le piratage * sur HTTP non sécurisée, avec ' $ cookie-> setHttpOnly (true); 'il sera * sûr contre le piratage * via les vulnérabilités XSS de votre page, et ainsi de suite. Donc, pour juger si un cookie est "sûr", vous devez d'abord définir le modèle de menace. Le vol de cookies sur HTTP ou XSS est ce que vous devriez normalement faire. – caw