Session Management – Datei basiert, mit Memcache und mit JSON-Token

Sicherheit

Die Session ist für gewöhnlich Dreh- und Angelpunkt eures Benutzerbereichs. Alleine schon, dass der Nutzer sich jetzt eingeloggt hat, macht die Session als potenzielles Einfallstor interessant – sogenanntes Session Highjacking.

Ihr solltet daher unbedingt immer wenn sich die Zugriffsrechte ändern (z. B. beim Login) mit session_regenerate_id() dafür sorgen, dass der soeben authentifizierte Benutzer eine frische Session-ID bekommt und nicht mit der alten ID aus dem öffentlichen WLAN weiter surft.

Eine weitere Maßnahme wäre die Session an die IP und/oder den User-Agent des Benutzers zu binden und sie abzulehnen, wenn sich diese Daten ändern. Gerade bei der IP kann das aber auf mobilen Geräten schnell zu Fehldiagnosen führen.

Eine gute Praxis ist auch vor kritischen Änderungen trotz einer gültigen Session noch einmal das Passwort abzufragen.

Eure Seite unter HTTPS anzubieten hilft auch Token- und Session-Parameter geheim zu halten.

Und natürlich solltet ihr zu guter Letzt beim Logout die Session mit session_destroy() löschen.