60 votes

Internet Explorer ignore les cookies sur certains domaines (impossible de lire ou de définir des cookies)

J'ai un site, par exemple, example.com, où les utilisateurs peuvent définir leurs propres sous-domaines (un utilisateur - un sous-domaine) et de télécharger leurs propres scripts, par exemple, http://somedomain.example.com/xyzzy.php serait mapper /www/somedomain/xyzzy.php

Maintenant, sur certains de ces domaines, Internet Explorer 7 ne sera pas/ne peut pas accepter les cookies. Vérifié avec un violon: le serveur envoie Set-Cookie réponse correctement, mais le témoin ne se présente jamais en IE - de JS ou d'Outils de développement. Sur demande, IE7 ne pas envoyer l'en-tête de Cookie.

Les cookies sont définis pour le domaine de l'utilisateur (par exemple, somedomain.example.com), le chemin est - /, essayé différentes options d'expiration (le passé, l'avenir, le courant, "0"), ne sont pas HttpOnly, ne sont pas sécurisées.

FF, Opera, Safari et Chrome tout fonctionne sans problèmes.

Pourquoi est-ce que IE ignorer les cookies?

107voto

u07ch Points 5303

Est-ce que l'un des sous-domaines utilise un trait de soulignement? IE a des problèmes pour accepter les cookies de sous-domaines qui ne suivent pas le RFC URI. ( http://www.ietf.org/rfc/rfc2396.txt )

51voto

Piskvor Points 46986

Selon RFC1035 (noms de Domaine - mise en œuvre et spécification):

[domaine nom] doit commencer par une lettre, se terminent par une lettre ou un chiffre, et ont de l'intérieur en caractères uniquement des lettres, des chiffres et le tiret.

S'avère que certains des domaines avait un trait de soulignement ( "_" ): some_domain.example.com. Bien que ce est une violation de la RFC, tous les autres navigateurs fonctionnent normalement.

MSIE 7, sur un domaine avec un trait de soulignement, silencieusement gouttes tous les cookies pour que l'hôte et refuse d'en accepter de nouvelles.

La seule solution est l'utilisation conforme à la RFC domaines (je l'ai remplacé tous les "_"s "-"s et configurer une règle de réécriture de sorte que le trafic est redirigé vers la conforme domaines).

13voto

Tomas Ullberg Points 1

Le problème ne s'applique pas uniquement pour les caractères de soulignement dans les noms de domaine, mais aussi pour les noms de domaine commençant par un chiffre. Donc, 1aaaaaaa.tld est en fait un non-standard de nom de domaine, ce qui va provoquer, c'est à dire rejeter les cookies.

Je l'ai résolu en utilisant seulement www2.1aaaaaaa.tld, puis l'ajout de règles de réécriture pour l' 1aaaaaaa.tld et www.1aaaaaaa.tld d'hôtes en .htaccess. Ne sais pas si c'qualifie vraiment comme conforme aux normes de la solution.... mais de toute façon, il semble avoir résolu le problème de cookie.

Espère que ça aide quelqu'un!

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