Définir un cookie sur HttpOnly via Javascript

87

J'ai un cookie qui n'est PAS HttpOnlyPuis-je définir ce cookie HttpOnlyvia JavaScript?

Eric Hotinger
la source
1
Comment serait-il possible de définir un cookie par JavaScript que JavaScript lui-même n'est pas censé manipuler? Réglez-le simplement côté serveur.
BalusC
1
Le cookie n'est PAS HttpOnly et je souhaite le définir sur HttpOnly via Javascript.
5
Je pense que vous manquez le point de HttpOnly.
BalusC
Excellente question. Il n'y a vraiment aucun inconvénient à définir un cookie HttpOnly du client en ce qui concerne la sécurité. Vous penseriez donc que ce serait autorisé. Mais bien sûr que non.
PHP Guru

Réponses:

171

Un HttpOnlycookie signifie qu'il n'est pas disponible pour les langages de script comme JavaScript. Donc, en JavaScript, il n'y a absolument aucune API disponible pour obtenir / définir l' HttpOnlyattribut du cookie, car cela irait autrement à l'encontre du sens de HttpOnly.

Il suffit de le définir comme tel côté serveur en utilisant la langue côté serveur utilisée par le serveur. Si JavaScript est absolument nécessaire pour cela, vous pouvez envisager de le laisser simplement envoyer une requête (ajax) avec par exemple un paramètre de requête spécifique qui déclenche le langage côté serveur pour créer un cookie HttpOnly. Mais, cela permettrait toujours aux pirates de changer facilement le HttpOnlypar XSS et d'avoir toujours accès au cookie via JS et de rendre ainsi le HttpOnlysur votre cookie complètement inutile.

BalusC
la source
4
Je me demande comment une application côté client comme l'extension de navigateur "EditThisCookie" pourrait changer l'indicateur HttpOnly en false.
pavanw3b
1
@ PavanW3b: Il n'utilise pas de langage de script côté client comme JavaScript pour cela. C'est juste une extension de navigateur.
BalusC
10
Les extensions @BalusC Browser sont écrites en JS et ont été pendant un certain temps developer.chrome.com/extensions "Vous les écrivez en utilisant des technologies Web telles que HTML, JavaScript et CSS." developer.mozilla.org/en-US/Add-ons/WebExtensions/... "Ils sont écrits à l'aide de technologies Web standard - JavaScript, HTML et CSS - ainsi que de quelques API JavaScript dédiées." Et exemple d'une API open source écrite en 2013 github.com/Asana/Chrome-Extension-Example
Justin
52
Je ne vois vraiment pas comment être en mesure de mettre HttpOnly de JS serait « vaincre le sens de HttpOnly», tant que le cookie reste illisible à partir du script ...
Hallo
4
MDN dit que c'est interdit. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot