Moin!
»» Es sei im Zusammenhang mit dem Speichern von Sessiondaten in der Datenbank darauf hingewiesen, dass du dir damit Race-Conditions ins Haus holst, ohne es zu wissen.
Hm, ich habe eigentlich nichts am Session Handling verändert - der Server speichert sie nach wie vor in Dateien. Die Datenbank nutze ich lediglich dazu um zusätzliche Informationen zur Nutzererkennung abzuspeichern. Damit dürfte es doch zu dem angesprochenen Problem der Race-Conditions gar nicht kommen?
Möglicherweise dann nicht. Die Frage ist allerdings, warum du zum Speichern von Sessiondaten nicht $_SESSION nimmst, sondern extra noch die Datenbank. Zumindest anhand der gegebenen Informationen sieht es eher so aus, als ob das verzichtbar sein sollte.
»» Zweitens: Ein User kann mehrere IPs haben.
Das ist mir neu. Ist es tatsächlich möglich, dass während einer Session bei jedem neuen Request eine andere IP-Adresse verwendet wird? In welchen Situationen könnte dies auftreten?
Wenn der User über eine Proxy-Farm mit Load-Balancing geleitet wird, kriegt er u.U. bei jedem Request eine neue IP. Ebenso könnte sich natürlich auch sein Router zwischendrin neu connecten und er eine neue dynamische IP zugewiesen bekommen.
Unter dem Strich: Die Prüfung der konstanten IP ist eher ungeeignet.
»» Der Zeitpunkt der letzten Aktivität ist lediglich dann von Interesse, wenn es um die Realisierung eines sicheren Auto-Logouts bei Inaktivität geht.
Genau das mache ich ja :-) Nach einer gewissen Inaktivität des Nutzers muss er sich erneut anmelden um fortzufahren.
Diese Info schreibt man aber normalerweise, genausowenig wie den Anmeldestatus, persistent in die Datenbank, sondern lässt sie in den Sessiondaten.
- Sven Rautenberg