Question

Existe-t-il un moyen de définir un cookie qui ne soit pas lisible sur les sous-domaines? En d'autres termes, le cookie doit être disponible sur domain.com , mais pas www.domain.com ou xyz.domain.com. .

//this is what i'm "intending"...
setcookie($name,$value,$expires,'/','domain.com');
//however, this is how it behaves:
setcookie($name,$value,$expires,'/','.domain.com');

Le raisonnement: je crée un CDN statique sur un sous-domaine et ne souhaite pas que les cookies de session utilisateur soient échangés pour chaque image, fichier CSS, fichier JS, etc.

... dois-je avoir recours à www.domain.com pour mon site? Existe-t-il des solutions de contournement?

Était-ce utile?

La solution

Apparemment, disposer d'un cookie sur & domain; domain.com " qui correspondra à " *. domain.com " est le comportement attendu.

Par exemple: BISCUITS HTTP HTTP DE L'ETAT DU CLIENT PERSISTANT état ) :

  

domain = NOM DE DOMAINE

     

Lors de la recherche dans la liste de cookies   cookies valides, une comparaison des   les attributs de domaine du cookie sont   faite avec le nom de domaine Internet de   l'hôte à partir duquel l'URL sera   allé chercher. ...
" Correspondance de queue " veux dire   cet attribut de domaine est apparié   contre la queue du pleinement   nom de domaine qualifié de l'hôte. A   attribut de domaine de " acme.com " aurait   faire correspondre les noms d'hôte " anvil.acme.com " comme   ainsi que "shipping.crate.acme.com" .

     

Uniquement les hôtes du domaine spécifié   peut définir un cookie pour un domaine et   les domaines doivent avoir au moins deux (2)   ou trois (3) périodes dans celles-ci pour   empêcher les domaines de la forme: ".com",   ".edu", et "va.us". N'importe quel domaine qui   échoue dans l'un des sept spécial   domaines de premier niveau répertoriés ci-dessous uniquement   besoin de deux périodes. Tout autre domaine   nécessite au moins trois. Les sept   Les domaines de premier niveau spéciaux sont: "COM",   "EDU", "NET", "ORG", "GOV", "MIL", et   "INT".

Donc, vous devrez soit:

  • utilisez " www.domaine.fr " pour votre site
  • ou utilisez un nom de domaine totalement différent pour votre contenu statique (par exemple, " .anotherdomain.com ")
    • par exemple, c’est ce qui se fait sur stackoverflow: le contenu statique est fourni par sstatic.net

Autres conseils

C’est la raison pour laquelle bon nombre de sites (y compris celui-ci) enregistrent un domaine dédié à utiliser comme CDN.

Cela n'est pas possible car le domaine de cookie est la correspondance du nom de domaine. . Vous devrez aller avec www.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top