Fabian St.: $_SESSION fälschen

Beitrag lesen

Hi!

ich speichere Bunutzerdaten (u.a. Passwort und "Sicherheitsstufe") in einer Datenbank. Wenn ich die Sicherheitsstufe aus der Datenbank auslesen und in $_SESSION['foo'] speichere, besteht dann die Möglichkeit, dass der Benutzer $_SESSION['foo'] verändert?
Also in der Art  wie sich ein POST oder GET Request beliebig manipulieren lässt?
Ich könnte natürlich auch jedesmal in der Datenbank nachfragen welche "Sicherheitsstufe" ein Benutzer hat, würde mir das aber sehr gerne sparen wenn es auch ohne geht.

Wie Carl dir bereits gesagt hat, werden die Session-Daten in serialisierter Form auf dem Server gespeichert. Wo diese genau gespeichert werden, hängt vom Wert der Konfigurationsoption »session.save_path« ab und dies ist genau der Punkt, wo sich Probleme ergeben könnten: Viele Massenhosting-Provider stellen für alle ihre Kunden »session.save_path« einfach auf /tmp, d.h. andere Kunden könnten unter Umständen (wenn der Server-Admin überhaupt nichts von seinem Fach versteht) auf bestehende Sessions zugreifen.
Aus diesem Grund sollte man »session.save_path« immer auf ein Verzeichnis im eigenen DocumentRoot umbiegen. Das erhöht einerseits die Sicherheit der eigenen Skripte und man beugt Problemen mit den Einstellungen der anderen Kunden vor (z.B. »session.gc_maxlifetime«).

Grüße,
Fabian St.