Mailinglisten-Archive |
Hallo Sebastian, Sebastian Mendel wrote: > dann funktioniert vielleicht dir 'garbage collection' nicht richtig, > oder das session.timeout ist nicht richtig eingestellt, eventuell > hilft es ja auch extra noch in der Session die Zeit zu speichern und > diese zu überprüfen. Nochmal zusammenfassend und der Reihe nach, wonach ich meine Schlussfolgerungen gezogen habe: Laut Google Cache wurde der Eintrag mit Session-ID am 24.11.2006 erfasst, sowie einige weitere Einträge über Links die nur ein angemeldeter User sehen kann. Über die Ursachen haben wir ja nun ausführlich spekuliert. Am 02.12.2006 informiert mich der User über diesen Umstand, dass seine Sessiondaten auf Google öffentlich sichtbar sind. Ich schau mir am 03.12.2006 diese Einträge auf Google an und besuche sowohl die Seite im Cache also auch die Seite, die sich aktuell hinter diesem Link mit der Session-ID verbirgt. Die Seite im Google Cache zeigt einen angemeldeten User. Logisch und richtig zeigt die aktuelle Seite zur betreffenden Session-ID jedoch keine Anmeldung, sondern quasi einen nicht authorisierten Gast auf der Website. Schlussfolgerung: Zu diesem Zeitpunkt ist die Session also abgelaufen, womit deine obige Vermutung widerlegt wäre. Anmerkung: Durch die Vorgabe der Session-ID per GET wurde eine neue Session mit dieser ID wieder angelegt. Am 04.12.2006 besuche ich durch Zufall sämtliche Links in Verbindung mit dem noch bestehenden Eintrag im Google Cache nochmals und erhalte nun beim Zugriff auf die aktuelle Seite unter Verwendung wieder der selben Session-ID eine laufende Sitzung mit Userdaten. Die session.gc_maxlifetime ist am Server auf 1440 gesetzt. Also mit 24 Minuten ein durchaus nicht unüblicher Wert. Außerdem genug Zeit, damit die Sitzung mit der selben ID, die ich am 03.12.2006 erzwungen hatte, längst expired sein dürfte. Greife ich nun aktuell auf wieder die gleiche aktuelle Version meiner Webseite unter Verwendung der URL mit betreffender immernoch gleicher Session-ID zu, dann erhalte ich wieder eine nicht authorisierte Sitzung, so wie ich es zu jedem Zeitpunkt erwarten würde. Meine Schlussfolgerung insgesamt: Zwischen der Verwendung der Session-ID in meiner "erzwungenen" Sitzung am 03.12.2006 und der automatischen Vergabe an einen User am 04.12.2006 gegen Vormittag lag ausreichend Zeit, dass die alte Session aufgeräumt wurde. Der Zeitraum ist aber relativ kurz, damit sich diese ID wiederholt. Lässt man nun die erzwungende Session-ID außer Acht, weil diese ja nicht auf Basis der microtime (falls das wirklich die Grundlage für den md5-Hash der Session-ID ist) generiert wurde, so muss man hier den Zeitraum vom 24.11.2006 zum 04.12.2006 als Turnus ansehen, in welchem sich eine automatisch generierte Session-ID wiederholt hat. Ob sie in der Zwischenzeit sogar noch häufiger aufgetreten ist, lässt sich nicht beweisen aber auch nicht auschließen. Für mich ist es aber nun ein unumstößlicher Fakt, dass die Session-ID überhaupt wiederholt aufgetreten ist. Sicherlich sehe ich das Ganze auch als einen Zufall, aber der tritt eben auf. Mit der Session-ID im Cookie wird sich aber auch dieses Problem erübrigen. Eine Notwendigkeit, an der garbage time etwas zu ändern, sehe ich aber nicht. PS für den Lutz: Ich habe das HTTrack mal durchlaufen lassen. Wie zu erwarten liefert es sämtliche Links noch mit Session-ID (ich habe noch nicht umgestellt auf Cookies only), aber keine aktive Sitzung, sondern nur die Sicht für einen Gast, der in einem DIV das Formular zur Anmeldung sieht. regards, Ringo
php::bar PHP Wiki - Listenarchive