web-dev-qa-db-fra.com

Chemin des cookies et son accessibilité aux pages des sous-dossiers

Disons que j'ai un site Web avec domaine: www.example.com

Si je place un cookie avec le chemin '(/' le cookie sera accessible via toutes les pages du domaine, par exemple:

  • www.example.com/page1.html
  • www.example.com/subfolder1/page1.html
  • www.example.com/subfolder1/moresubfolder1/page1.html, etc.

Que se passe-t-il si nous définissons le cookie sur le chemin '(/subfolder1 ', le cookie sera-t-il mis à la disposition de n'importe quelle page ou sous-dossier sous le dossier? Par exemple:

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

Donc, sinon, je suppose, je n'ai pas d'autre choix que d'utiliser le chemin '/' pour ces cookies, non?

63
Nordin

Si nous définissons le cookie sur le chemin '/ subfolder1', le cookie sera-t-il mis à la disposition de n'importe quelle page ou sous-dossier sous le dossier?

Oui. Le cookie sera disponible pour toutes les pages et sous-répertoires dans le /subfolder1 chemin.

65
Alex Barrett

si nous définissons le cookie sur le chemin /subfolder1, les pages suivantes de l'exemple sont accessibles:

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

Cependant, la page www.example.com/page1.html ne sera pas accessible car il n'appartient pas au chemin autorisé.

12
thefunfreak

Pour lever toute ambiguïté en réutilisant une partie de this answer:

Un chemin d'accès de requête correspond à un chemin de cookie donné si au moins une des conditions suivantes est remplie:

  • Le cookie-path et le request-path sont identiques.
  • Le chemin du cookie est un préfixe du chemin de la demande et le dernier caractère du chemin du cookie est% x2F ("/").
  • Le cookie-path est un préfixe du request-path, et le premier caractère du request-path qui n'est pas inclus dans le cookie-
    Le chemin est un caractère% x2F ("/").

Il existe une légère différence (mais potentiellement importante) entre la définition d'un cookie sur le /subfolder1 chemin et le /subfolder1/ chemin.

Si vous comptez sur l'ancien, votre chemin de demande doit commencer par un "caractère% x2F ("/")" (une barre oblique) pour garantir le comportement souhaité. Pour un exemple, jetez un œil à la réponse liée.

Définition du chemin du cookie sur simplement / évite tous les cas Edge, mais comme vous le dites - le cookie serait accessible à tout le domaine.

8
Michael