phpbar.de logo

Mailinglisten-Archive

[php] 1/2 OT Session und Google Cache

[php] 1/2 OT Session und Google Cache

Ringo Großer swek at gmx.net
Mon Dez 4 15:26:20 CET 2006


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