Cookie-Pfad und seine Zugänglichkeit zu Unterordnerseiten


74

Angenommen, ich habe eine Website mit der Domain: www.example.com

Wenn ich ein Cookie mit dem Pfad ' / ' setze , ist das Cookie über alle Seiten in der Domain zugänglich, z. B.:

  • www.example.com/page1.html
  • www.example.com/subfolder1/page1.html
  • www.example.com/subfolder1/moresubfolder1/page1.html usw.

Was passiert , wenn wir das Cookie auf den Pfad ' / subfolder1 ' setzen, wird das Cookie dann für jede Seite oder jeden Unterordner unter dem Ordner verfügbar gemacht? Z.B:

  • www.example.com/subfolder1/moresubfolder/page1.html

Wenn nicht, habe ich wohl keine andere Wahl, als den Pfad '/' für diese Cookies zu verwenden, oder?

Antworten:


75

Wenn wir das Cookie auf den Pfad '/ subfolder1' setzen , wird das Cookie dann für jede Seite oder jeden Unterordner unter dem Ordner verfügbar gemacht?

Ja. Das Cookie wird auf alle Seiten und Unterverzeichnisse zur Verfügung innerhalb des /subfolder1Pfades.


34
Die entsprechende Spezifikation finden Sie unter stackoverflow.com/questions/8014024/set-cookie-wildcard-path . Für diejenigen, die es nicht wussten, sind Cookies nur für den angegebenen Pfad und alle Unterpfade zugänglich, keine Superpfade. Cookies für den Pfad "/ folder / subfolder1 /" sind daher für "/ folder /" nicht zugänglich. Ich schlug meinen Kopf ein bisschen auf diesen.
Anson Kao

@SampleJACK autsch, das erklärt MEIN Problem ganz gut!
RonLugge

@Alex, wie bekommen wir einen Cookie, der dafür ist, /subfolder1aber nicht /subfolder1/inner-folder ?
Pacerier

@ Pacerier Die Antwort, die wir kommentieren, ist richtig. Haben Sie etwas anderes gefragt?
Anson Kao

@SampleJACK Wie erhalten wir ein Cookie für / subfolder1, aber nicht für / subfolder1 / inner-folder?
Pacerier

12

Wenn wir das Cookie auf Pfad setzen /subfolder1, sind die folgenden Seiten im Beispiel zugänglich:

www.example.com/subfolder1/page1.html
www.example.com/subfolder1/moresubfolder1/page1.html
usw.

Auf die Seite kann www.example.com/page1.htmljedoch nicht zugegriffen werden, da sie nicht zum zulässigen Pfad gehört.


10

So beseitigen Sie Unklarheiten, indem Sie einen Teil dieser Antwort wiederverwenden :

Ein Anforderungspfadpfad stimmt mit einem bestimmten Cookie-Pfad überein, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

  • Der Cookie-Pfad und der Anforderungspfad sind identisch.
  • Der Cookie-Pfad ist ein Präfix des Anforderungspfads, und das letzte Zeichen des Cookie-Pfads ist% x2F ("/").
  • Der Cookie-Pfad ist ein Präfix des Anforderungspfads, und das erste Zeichen des Anforderungspfads, das nicht im Cookie-
    Pfad enthalten ist, ist ein% x2F-Zeichen ("/").

Es gibt einen kleinen (aber möglicherweise wichtigen) Unterschied zwischen dem Setzen eines Cookies auf dem /subfolder1Pfad und dem /subfolder1/Pfad.

Wenn Sie sich auf den ersteren verlassen, muss Ihr Anforderungspfad mit einem "% x2F (" / ") - Zeichen" (einem Schrägstrich) beginnen, um das gewünschte Verhalten zu gewährleisten. Schauen Sie sich als Beispiel die verknüpfte Antwort an.

Wenn Sie den Cookie-Pfad so einstellen, dass nur /Randfälle vermieden werden, ist das Cookie, wie Sie sagen, für die gesamte Domain zugänglich.


1
informativste Antwort
CybeX

Was ist der Unterschied zwischen /subfolder1und /subfolder1/? Bei der verknüpften Antwort besteht der einzige Unterschied darin, dass der Anforderungspfad /subfolder1KKKauch mit dem Cookie-Pfad übereinstimmt /subfolder1, oder? Und ein anderer Browser hat möglicherweise ein anderes Verhalten, z. B. stimmt der IE-Anforderungspfad /subfolder1KKKmit dem Cookie-Pfad überein /subfolder1, Firefox jedoch nicht, oder?
Frank
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.