Frage

Ich habe eine PHP-Site, der ein ziemlich gemeinsames Authentifizierungsschema verwendet.

  • Der gesamte Login-Bereich erfordert ssl.
  • Ein Benutzer gibt seinen Benutzernamen und pw, wenn sie den db übereinstimmen, wird eine Sitzung gestartet und ein Wert für sie.
  • Wenn sie versuchen, eine Seite zu besuchen, die eine Authentifizierung erforderlich ist, überprüft es, ob dieser Wert in der Sitzung anwesend ist, und leitet sie an die Login-Seite, wenn es nicht ist.

Wir haben immer ein paar Leute, die Mühe loggin haben in, weil sie nicht gesetzt sind Session-Cookies zu verwenden, oder sie haben Probleme mit dem Cache, um die Vorwärts-Seite stroring, etc.

In letzter Zeit jedoch haben wir eine Menge Leute mit IE haben, die sie nicht anmelden kann. Fixing ihre Session-Cookie-Einstellungen und dem Löschen des Cache nicht helfen, aber sie können sich anmelden, wenn sie firefox / Oper auf demselben Computer verwenden. Ich bin mir ziemlich sicher, dass es ein Problem mit IE und nicht irgendetwas dazwischen.

Kennt jemand von irgendwelchen letzten Änderungen an IE 7, die Session-Cookies beeinflussen würde?

Update:

Ich habe vor kurzem eine Umsetzung session_regenerate_id () rufen Sie uns sofort nach der Anmeldung, da es nun einige Umstände, wo ein Benutzer eine vorhandene Sitzung kann, die verwendet werden, aber das war schon vor einiger Zeit.

War es hilfreich?

Lösung

Mein erster Schritt wäre es, einen Benutzer zu finden, die mit Firefox und IE nicht anmelden können, und dann Fiddler gegen beiden ausführen, um die Unterschiede in den HTTP-Request / Response-Paare für den Login-Prozess zu sehen. Das sollte zumindest geben Sie eine bessere Vorstellung davon, wo sie suchen müssen.

Andere Tipps

Wenn IE Sicherheitseinstellungen angekurbelt werden (was vor allem in Unternehmensumgebungen üblich ist), oder wenn die Seite, die Sie Anmeldung in ist in einem Rahmen oder Iframe, das sein könnte, was das Cookie zu halten von Speichern. Alles, was Sie tun müssen, ist Header P3P-Richtlinie HTTP gesetzt, wenn das der Fall ist. Hier ist die beste Beschreibung, die ich, wie sie implementieren finden konnte.

Ich habe nichts gehört. Obwohl, das ist genau, warum ich mit cookieless Sitzungen auf allen meinen öffentlichen Projekten geschaltet. Ich glaube, ASP.Net hat diese gebaut, aber ich ziehe meine eigenen Implementierungen zu verwenden. Vorbei Abfragezeichenfolgeflag sessionid Parameter von Seite zu Seite und entweder binden sie an einer DB Datensatz oder einen anderen Datenspeicher ist wesentlich zuverlässiger.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top