Existe-t-il un moyen de lire un cookie sécurisé avec JavaScript?
J'ai essayé de le faire en utilisant document.cookie
et d'après ce que je peux voir sur cet article sur les cookies sécurisés et le drapeau HttpOnly , je ne peux pas accéder à un cookie sécurisé de cette façon.
Quelqu'un peut-il suggérer une solution de contournement?
Réponses:
Différents navigateurs activent différentes mesures de sécurité lorsque l' indicateur HTTPOnly est défini. Par exemple, Opera et Safari n'empêchent pas javascript d'écrire dans le cookie. Cependant, la lecture est toujours interdite sur la dernière version de tous les principaux navigateurs.
Mais plus important encore, pourquoi voulez-vous lire un
HTTPOnly
cookie? Si vous êtes un développeur, désactivez simplement l'indicateur et assurez-vous de tester votre code pour xss. Je vous recommande d'éviter de désactiver cet indicateur dans la mesure du possible. L'HTTPOnly
indicateur et «l'indicateur sécurisé» (qui force l'envoi du cookie via https) doivent toujours être définis.Si vous êtes un attaquant , vous souhaitez détourner une session . Mais il existe un moyen simple de détourner une session malgré le
HTTPOnly
drapeau. Vous pouvez toujours suivre la session sans connaître l'identifiant de session. Le ver MySpace Samy a fait exactement cela. Il a utilisé un XHR pour lire un jeton CSRF , puis effectuer une tâche autorisée. Par conséquent, l'attaquant peut faire presque tout ce que l'utilisateur connecté peut faire.Les gens ont trop confiance dans le
HTTPOnly
drapeau, XSS peut toujours être exploitable. Vous devez installer des barrières autour des fonctionnalités sensibles. Tels que le mot de passe de changement déposé devrait exiger le mot de passe actuel. La capacité d'un administrateur à créer un nouveau compte devrait nécessiter un captcha, qui est une technique de prévention CSRF qui ne peut pas être facilement contournée avec un XHR .la source
L'intérêt des cookies HttpOnly est qu'ils ne sont pas accessibles par JavaScript.
La seule façon (sauf pour exploiter les bogues du navigateur) pour votre script de les lire est d'avoir un script coopérant sur le serveur qui lira la valeur du cookie et la rejoindra dans le cadre du contenu de la réponse. Mais si vous pouvez et voulez faire cela, pourquoi utiliser les cookies HttpOnly en premier lieu?
la source
L'un des moyens consiste à utiliser l'inspecteur Web Safari, et dans l'onglet de stockage, vous pouvez voir tous les cookies, httpSeulement ou non, et sélectionnez simplement le cookie Commande + C pour le copier.
Une fois que vous avez la chaîne, vous pouvez facilement l'analyser avec n'importe quel analyseur de cookie ou javascript simple.
la source