So setzen Sie das Cookie-Secure-Flag mit Javascript

Lesezeit: 3 Minuten

Benutzeravatar von BobtheMagicMoose
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!

Benutzeravatar von sfy
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.

Weitere Details und praktische Anwendungen. Überprüfen Testing_for_cookies_attributes_(OTG-SESS-002)

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

  1. Das Attribut „Domäne“ darf nicht vorhanden sein, es wird nur an den Host gesendet, der es festgelegt hat.

  2. 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.

    – Vitaly Zdanevich

    18. Juli 2017 um 8:42


  • MDN erwähnt ausdrücklich, dass es verboten ist. Developer.mozilla.org/en-US/docs/Web/HTTP/…

    – mpoisot

    21. September 2019 um 21:18 Uhr

  • @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.

    – rebane2001

    6. Januar 2020 um 8:55

Dieses Cookie-Paket ist einfach zu verwenden @ https://www.npmjs.com/package/js-cookie

 //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.s Benutzeravatar
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.

1453320cookie-checkSo setzen Sie das Cookie-Secure-Flag mit Javascript

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy