103 votes

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

Supposons que j'ai un site web avec le domaine : www.example.com

Si je définis un cookie avec le chemin '***/***', le cookie sera accessible sur toutes les pages du domaine, par exemple :

  • www.example.com/page1.html
  • www.example.com/sous-dossier1/page1.html
  • www.example.com/sous-dossier1/sous-sous-dossier1/page1.html, etc.

Et si nous définissons le cookie avec le chemin '/sous-dossier1', le cookie sera-t-il disponible pour toutes les pages ou sous-dossiers sous ce dossier ? Par exemple :

  • www.example.com/sous-dossier1/sous-sous-dossier/page1.html

Donc, si ce n'est pas le cas, je suppose que je n'ai pas d'autre choix que d'utiliser le chemin '/' pour ces cookies, n'est-ce pas ?

99voto

Alex Barrett Points 7719

Si nous définissons le cookie sur le chemin '/sous-dossier1', le cookie sera-t-il disponible sur n'importe quelle page ou sous-dossier situé en dessous du dossier?

Oui. Le cookie sera disponible pour toutes les pages et sous-dossiers à l'intérieur du chemin /sous-dossier1.

17voto

Mikaveli Points 3235

Pour éliminer une certaine ambiguïté en réutilisant une partie de cette réponse :

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

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

Il y a une légère (mais potentiellement importante) différence entre le fait de définir un cookie sur le chemin /sousdossier1 et le chemin /sousdossier1/.

Si vous vous fiez au premier, votre chemin de requête doit commencer par un caractère "%x2F ("/")" (un slash) pour garantir le comportement désiré. Pour un exemple, consultez la réponse liée.

Définir le chemin du cookie simplement à / permet d'éviter tout cas particulier, mais comme vous l'avez dit - le cookie serait accessible sur l'ensemble du domaine.

13voto

thefunfreak Points 1

Si nous définissons le cookie pour le chemin /sous-dossier1, les pages suivantes de l'exemple sont accessibles:

www.example.com/sous-dossier1/page1.html
www.example.com/sous-dossier1/autresousdossier1/page1.html
etc.

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

2voto

Par exemple, il y a 7 URL ci-dessous qui peuvent accéder au cookie avec le chemin global /:

https://example.com/
https://example.com/a/
https://example.com/a/a-1/
https://example.com/a/a-2/
https://example.com/b/
https://example.com/b/b-1/
https://example.com/b/b-2/

Ensuite, le cookie avec le chemin /b peut être accédé par 3 URL ci-dessous :

https://example.com/b/
https://example.com/b/b-1/
https://example.com/b/b-2/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X