dedlfix: Suhosin zerstört PHPs Session-Management?

Beitrag lesen

Hi!

Bitte zeig auch mal die "normalen" session.*-Einstellungen. Ich weiß nicht, ob der Suhosin an Dingen wie einem gemeinsamen session.save_path beteiligt ist. Wenn jedenfalls alle Anwender ihre Sessiondaten in ein und dem selben Verzeichnis ablegen und sich jemand ein strengeres Session-Timeout konfiguriert hat, dann räumt der Garbage Collector auch alle fremden Sessiondateien nach diesem Zeitplan auf. Er unterschiedet nicht zwischen Anwendern oder gar Anwendungen des selben Nutzers.

Schau mal da:

session.save_path /var/lib/php/session /var/lib/php/session

/var/lib/php/session sieht mir nach einem sehr allgemeinen Verzeichnisnamen aus. Ich nehme an, dass das bei jedem genau gleich eingestellt ist und dann das oben gesagte Fremdaufräumen passiert.

Leg den session.save_path auf einen Pfad innerhalb deines Kundenverzeichnisses, aber so, dass kein DocumentRoot darauf zeigt. Bei einem guten Hoster kann man die Domainkonfiguration so vornehmen, dass sie auf selbst angelegte Unterverzeichnisse zeigen, so dass man weitere Unterverzeichnisse anlegen kann, auf die keine Domain zeigt.

/kunden/harry/                  - die Wurzel deines Kundenverzeichnisses
/kunden/harry/projekt1/         - projektspezifische Wurzeln
/kunden/harry/projekt2/

/kunden/harry/projekt1/docroot/
/kunden/harry/projekt1/session/

/kunden/harry/projekt2/docroot/ - öffentlich erreichbar. http://projekt2.example.com/ zeigt genau darauf.
/kunden/harry/projekt2/session/ - projektspezifisch, aber nicht öffentlich erreichbar. Bei session_save_path() vor dem session_start() angeben oder in der Verzeichniskonfiguration (.htaccess) einstellen.

Lo!