So setzen Sie das Cookie-Secure-Flag mit Javascript
Lesezeit: 3 Minuten
BobtheMagicMoose
Ich habe versucht, ein Cookie zu setzen document.cookie = "tagname = test; secure" Dies setzt jedoch nicht das Sicherheitsflag. Habe ich es falsch eingestellt? Können Sie es nur über eine Serverantwort festlegen? Ich frage mich auch, ob es wahrscheinlich nicht häufig verwendet wird, da es mir schwer fiel, ein Beispiel für seine Verwendung zu finden?
Vielen Dank!
sfy
TL:DR
document.cookie = "tagname = test;secure";
Sie müssen HTTPS verwenden, um ein sicheres Attribut festzulegen
Der normale (oder vielleicht formale) Name ist Attribut. Da sich die Flagge auf andere Dinge bezieht.
Mehr Info
Cookie-Attribute:
Sicher – Cookies werden nur bei der HTTPS-Übertragung gesendet.
HttpOnly – Skripten nicht erlauben, auf Cookies zuzugreifen. Sie können sowohl „Secure“ als auch „HttpOnly“ festlegen.
Domäne – Geben Sie die Hosts an, an die das Cookie gesendet wird.
Pfad – Bereiche erstellen, Cookies werden nur gesendet, wenn der Pfad übereinstimmt.
Läuft ab – gibt die maximale Lebensdauer des Cookies an.
AKTUALISIERUNG Die folgenden Inhalte laufen am 2. Juni 2016 ab.
Cookie-Flags
Cookie-Flags sind Präfixe. Im Moment sind sie in der beschrieben RFC-Entwurf als Update zum RFC6265
Diese Flags werden mit dem Attribut „secure“ verwendet.
__Secure-
Der Bindestrich ist Teil des Präfixes. Dieses Flag teilt dem Browser mit, dass das Cookie nur in „https“ enthalten sein soll.
__Host-
Ein Cookie mit dieser Flagge
Das Attribut „Domäne“ darf nicht vorhanden sein, es wird nur an den Host gesendet, der es festgelegt hat.
Muss über ein „Pfad“-Attribut verfügen, das auf „https://stackoverflow.com/“ gesetzt ist, da es bei jeder Anfrage vom Host an den Host gesendet wird.
Danke! Das Problem bestand darin, dass ich versuchte, das sichere Attribut festzulegen, ohne HTTPS zu verwenden.
– BobtheMagicMoose
15. Mai 2016 um 16:23
Ich habe es bei dir versucht document.cookie = "tagname = test;secure"; Aber document.cookie zurückkehren tagname=test, https, getestet in aktuellen Versionen von Chromium und Firefox. UPD, oh, ich habe es gefunden secure Flag im Cookie-Viewer in Devtools.
@sfy Ich muss secure true setzen, also ist die erforderliche Änderung mein js-Code -> document.cookie = cookie_consent=${value}; expires=${expireDate} Secure; path=/; ??
– Priyen Mehta
6. Dezember 2022 um 7:08 Uhr
@PriyenMehta Sie müssen überprüfen, ob Sie Ihren Server über HTTPS kontaktieren und ob Ihr Server HTTPS unterstützt.
– sfy
7. Dezember 2022 um 7:26
weil die Flagge aufgerufen wird securenicht Sicherheit:
document.cookie = "tagname = test;secure";
Entschuldigung, das war ein Tippfehler in meinem ursprünglichen Beitrag. Ich habe es inzwischen korrigiert. Wenn ich die Chrome-Konsole verwende und Folgendes eingebe: document.cookie = "tagname = test;secure"; Es werden keine Cookies hinzugefügt, aber wenn ich tippe document.cookie = "tagname = test"; es wird hinzugefügt. Ist dies eine Einschränkung bei der Eingabe von Dingen in die Chrome-Konsole? Danke für die Antwort.
– BobtheMagicMoose
15. Mai 2016 um 7:24
@BobtheMagicMoose Versuchen Sie dies auf einer HTTPS-Website? Bei mir funktioniert es ganz gut, aber Sie müssen es auf einer HTTPS-Website tun.
//to set cookie use
Cookies.set('name', 'value', { expires: 7, path: '' });
//to read the cookie, use
Cookies.get('name'); // => 'value'
//to delete cookie this
Cookies.remove('name')
//to set secure cookie this
Cookies.set('name', 'value', { secure: true });
Die 7 im Ablaufdatum bedeutet 7 Tage
– Chukwuemeka Maduekwe
8. November 2020 um 20:23
Obwohl der Server mit Großbuchstaben geantwortet und durch Leerzeichen getrennt hat:
set-cookie: x = y; Secure
Das Client-Javascript muss in Kleinbuchstaben geschrieben werden secure und löschen Sie das Leerzeichen danach ;etwa so:
document.cookie = `x=y;secure`;
Andernfalls wird es keine Auswirkungen haben.
I.sh.
Dies ist ein Beispiel für ExpressJs-Benutzer:
Sicheres Cookie setzen
res.cookie("name", "value", { secure: true });
Lesen Sie dieses Cookie
req.cookies["name"];
Wenn das Secure Wenn das Attribut für ein Cookie festgelegt ist, wird es vom Browser nur dann in die Anfrage aufgenommen, wenn die Anfrage über gestellt wird HTTPS und nicht durch HTTP .
Es empfiehlt sich, dieses Attribut für sensible Cookies zu verwenden, da es sie davor schützt, über eine unsichere Verbindung gesendet zu werden.
14533200cookie-checkSo setzen Sie das Cookie-Secure-Flag mit Javascriptyes