2009-06-19 9 views
8

J'ai un serveur de dev dans notre bureau qui est derrière le pare-feu. Le nom d'hôte est franklin. Nous nommons tous nos serveurs après des scientifiques ou des inventeurs.Cookie sur un domaine intranet

Quand je mets un cookie HTTP:

Set-Cookie: user=kenny; expires=1245424860.11; Path=/; domain=franklin 

Le cookie n'a pas défini. J'ai essayé ce qui suit sans aucune chance.

.franklin 
.franklin.local 
franklin.local 
.franklin.localdomain 
franklin.localdomain 

Dois-je définir le nom d'hôte à quelque chose de différent ou puis-je mettre ce cookie par magie, je ne sais pas déjà?

+0

curieusement j'ai laissé tomber le domaine = franklin et il a placé le cookie. En utilisant la barre d'outils du développeur web de firefox, il est dit que le domaine est franklin. Je ne sais pas ce qui se passait. –

Répondre

7

RFC 2109 dit:

Pour éviter d'éventuelles violations de sécurité ou de confidentialité, un agent utilisateur rejette un cookie (ne doit pas stocker ses informations) si l'une des suivantes est remplie:

  • La valeur de l'attribut Domaine ne contient pas de points imbriqués ou ne commence pas par un point.
  • La valeur de l'hôte de la demande ne correspond pas au domaine l'attribut Domaine .

Et aussi:

par défaut de domaine à la demande-hôte.

Si votre hôte est franklin:

  • Cookies avec domain=.franklin seront rejetées, parce qu'il n'a pas de point intégré.
  • Les cookies avec domain=.franklin.local seront rejetés, car ils ne correspondent pas au nom d'hôte réel de votre serveur.

La solution est de renommer votre nom d'hôte à franklin.local ou franklin.<tld> et définir l'attribut domain du cookie en conséquence (domain=.franklin.<tld>). Sinon (comme vous l'avez découvert), ne spécifiez pas le domain et laissez l'agent utilisateur se replier sur l'hôte de la demande.

+1

Grande explication! Merci molf! –

0

Définissez-vous le cookie du bon domaine? Vous devriez accéder au site Web sur http://franklin/ sinon cela ne fonctionnerait pas (voir: même politique d'origine).

+0

Je peux y accéder en tant que http: // franklin/ –

Questions connexes