Question

J'ai un site PHP qui utilise un système d'authentification assez commun.

  • La zone de connexion entière nécessite ssl.
  • Un utilisateur entre son nom d'utilisateur et pw, si elles correspondent à la DB, une session est ouverte et une valeur définie pour eux.
  • S'ils essaient de visiter une page qui nécessite une authentification, il vérifie si cette valeur est présente dans la session, et les transmet à la page de connexion, si ce n'est pas.

Nous avons toujours quelques personnes qui ont du mal à loggin parce qu'ils ne sont pas configurés pour utiliser les cookies de session, ou ils ont des problèmes avec le cache stroring la page suivante, etc.

Ces derniers temps, cependant, nous avons eu beaucoup de personnes avec IE qui ne peuvent pas se connecter. Fixation des paramètres des cookies de session et d'effacer le cache ne contribuent pas, mais ils peuvent se connecter s'ils utilisent firefox / opéra sur le même ordinateur. Je suis sûr que c'est un problème avec IE, et rien entre les deux.

Quelqu'un sait-il des changements récents à IE 7 qui affecterait les cookies de session?

Mise à jour:

Je ne récemment mettre en place un session_regenerate_id () appelez immédiatement après la connexion, car il y a maintenant certaines circonstances où un utilisateur peut avoir une session existante qui sera utilisée, mais qui était tout à fait il y a quelque temps.

Était-ce utile?

La solution

Ma première étape serait de trouver un utilisateur qui peut se connecter avec Firefox et non IE, puis exécutez Fiddler contre les deux pour voir les différences entre les paires requête HTTP / réponse pour le processus de connexion. Cela devrait, au moins, vous donner une meilleure idée de l'endroit où regarder.

Autres conseils

Si les paramètres de sécurité de IE sont coudés vers le haut (ce qui est courant en particulier dans les environnements d'entreprise), ou si la page que vous connecter à est dans un cadre ou iframe, qui pourrait être ce garder le cookie de l'épargne. Tout ce que vous devez faire est de définir les en-têtes HTTP de politique P3P si tel est le cas. Voici la meilleure description que je pouvais trouver sur la façon de les mettre en œuvre.

Je n'ai rien entendu. Bien que, c'est précisément la raison pour laquelle je suis passé à l'aide de sessions sur tous mes cookieless projets publics. Je crois ASP.Net a ce construit mais je préfère utiliser mes propres implémentations. En passant les paramètres de sessionid querystring de la page à la page et soit l'attacher à un enregistrement DB ou d'un autre magasin de données est beaucoup plus fiable.

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