Setzen Sie ein Cookie über Javascript auf HttpOnly

87

Ich habe ein Cookie, das NICHT ist. HttpOnlyKann ich dieses Cookie HttpOnlyüber JavaScript setzen?

Eric Hotinger
quelle
1
Wie wäre es möglich, ein Cookie mit JavaScript zu setzen, das JavaScript selbst nicht manipulieren kann? Stellen Sie es einfach auf der Serverseite ein.
BalusC
1
Das Cookie ist NICHT HttpOnly und ich möchte es über Javascript auf HttpOnly setzen.
5
Ich denke, Sie verpassen den Punkt von HttpOnly.
BalusC
Gute Frage. Es ist wirklich kein Nachteil, ein HttpOnly-Cookie vom Client zu setzen, was die Sicherheit betrifft. Sie würden also denken, dass es erlaubt wäre. Aber das ist es natürlich nicht.
PHP Guru

Antworten:

171

Ein HttpOnlyCookie bedeutet, dass es für Skriptsprachen wie JavaScript nicht verfügbar ist. In JavaScript ist also absolut keine API verfügbar, um das HttpOnlyAttribut des Cookies abzurufen / festzulegen, da dies sonst die Bedeutung von zunichte machen würde HttpOnly.

Stellen Sie es einfach auf der Serverseite als solches ein, indem Sie die von der Serverseite verwendete serverseitige Sprache verwenden. Wenn JavaScript dafür unbedingt erforderlich ist, können Sie es einfach eine (Ajax-) Anfrage mit einem bestimmten Anforderungsparameter senden lassen, der die serverseitige Sprache zum Erstellen eines HttpOnly-Cookies auslöst. Dies würde es Hackern jedoch immer noch leicht machen, das HttpOnlynur durch XSS zu ändern und weiterhin über JS auf das Cookie zuzugreifen, wodurch das HttpOnlyauf Ihrem Cookie völlig unbrauchbar wird.

BalusC
quelle
4
Ich frage mich, wie eine clientseitige App wie die Browsererweiterung "EditThisCookie" das HttpOnly-Flag in "false" ändern kann.
pavanw3b
1
@ PavanW3b: Es wird keine clientseitige Skriptsprache wie JavaScript verwendet. Es ist nur eine Browser-Erweiterung.
BalusC
10
@ BalusC Browser-Erweiterungen sind in JS geschrieben und werden seit einiger Zeit von developer.chrome.com/extensions verwendet. "Sie schreiben sie mit Webtechnologien wie HTML, JavaScript und CSS." developer.mozilla.org/en-US/Add-ons/WebExtensions/… "Sie werden mit Standard-Webtechnologien - JavaScript, HTML und CSS - sowie einigen dedizierten JavaScript-APIs geschrieben." Und ein Beispiel für eine Open Source-API, die 2013 geschrieben wurde github.com/Asana/Chrome-Extension-Example
Justin Hamade
52
Ich sehe nicht wirklich, wie die Einstellung von HttpOnly von JS "die Bedeutung von HttpOnly" zunichte machen würde , solange der Cookie aus dem Skript noch nicht lesbar ist ...
hallo
4
MDN sagt, es ist verboten. developer.mozilla.org/en-US/docs/Web/HTTP/…
mpoisot