🐘
PHP & MySQL

PHP-Sessions konfigurieren und absichern

📅 13 Oktober 2026 ✏️ 13 Oktober 2026 ⏱ 5 min leestijd

Erfahre, wie du PHP-Sessions richtig konfigurierst und gegen Session-Hijacking, Fixation und andere Schwachstellen auf deinem Webserver absicherst.

PHP-Sessions sorgen dafür, dass eine Website Benutzerdaten zwischen Seitenaufrufen speichern kann, etwa einen Login-Status oder Warenkorb. Die Standardeinstellungen sind jedoch nicht immer sicher genug für Produktionsumgebungen. In diesem Artikel erfährst du, wie Sessions funktionieren, welche php.ini-Einstellungen wichtig sind und mit welchen konkreten Maßnahmen du Sessions gegen Hijacking und Fixation schützt.

Wie PHP-Sessions funktionieren

Wenn ein Besucher eine Website aufruft, die Sessions verwendet, erstellt PHP eine eindeutige Session-ID. Diese ID wird meist in einem Cookie (PHPSESSID) beim Besucher gespeichert und genutzt, um die zugehörigen Daten auf dem Server wiederzufinden, beispielsweise in einer Datei oder Datenbank. Bei jeder weiteren Anfrage sendet der Browser dieses Cookie mit, sodass der Server weiß, welche Sitzungsdaten zu welchem Besucher gehören.

Das Problem entsteht, wenn diese Session-ID abgefangen oder erraten wird. Ein Angreifer, der die ID erlangt, kann sich als der angemeldete Benutzer ausgeben, ohne ein Passwort zu benötigen. Eine gute Konfiguration von Sessions ist daher genauso wichtig wie eine starke Passwortrichtlinie.

BrowserSession-IDCookieServerSitzungsdaten

Wichtige php.ini-Einstellungen

Die folgenden Einstellungen in php.ini (oder in einer .user.ini-Datei bei Shared Hosting) bestimmen, wie sicher Sessions sind:

  • session.cookie_httponly = 1 – verhindert, dass JavaScript auf das Sitzungscookie zugreifen kann, wodurch Cross-Site-Scripting (XSS) weniger gefährlich wird.
  • session.cookie_secure = 1 – sorgt dafür, dass das Cookie nur über HTTPS gesendet wird, niemals unverschlüsselt.
  • session.cookie_samesite = Strict oder Lax – begrenzt das Mitsenden des Cookies bei Anfragen von anderen Websites und verringert das CSRF-Risiko.
  • session.use_strict_mode = 1 – verhindert, dass PHP eine vom Angreifer erfundene Session-ID akzeptiert.
  • session.gc_maxlifetime – bestimmt, wie lange eine inaktive Sitzung gültig bleibt, bevor sie bereinigt wird.
  • session.name – ändere den Standardnamen PHPSESSID in etwas Einzigartiges, sodass automatische Scan-Tools schwerer erkennen können, welche Technik du verwendest.
💡 Tipp: Teste Änderungen immer zuerst in einer Testumgebung. Ein falsch eingestellter SameSite-Wert kann dazu führen, dass Benutzer unerwartet abgemeldet werden.

Sessions gegen Hijacking und Fixation absichern

Neben den php.ini-Einstellungen gibt es Maßnahmen, die du in deinem eigenen Anwendungscode umsetzt:

1

Regeneriere die Session-ID nach dem Login

Rufe direkt nach einem erfolgreichen Login session_regenerate_id(true) auf. Dies verhindert Session Fixation, bei der ein Angreifer einen Besucher vorab eine feste Session-ID verwenden lässt.

2

Überprüfe die IP-Adresse und den User-Agent

Speichere beim Start einer Sitzung die IP-Adresse und den User-Agent und vergleiche diese bei jeder Anfrage. Bei einer unerwarteten Änderung kannst du die Sitzung ablaufen lassen.

3

Stelle eine angemessene Zeitüberschreitung ein

Lass Sitzungen nach einer Phase der Inaktivität automatisch ablaufen, sowohl über session.gc_maxlifetime als auch über eine eigene Zeitstempelprüfung im Code.

4

Zerstöre Sitzungen beim Abmelden korrekt

Verwende session_unset(), session_destroy() und entferne das Cookie explizit, sodass keine Restdaten zurückbleiben.

5

Erzwinge immer HTTPS

Ohne gültiges SSL-Zertifikat kann ein Sitzungscookie über unverschlüsselte Verbindungen abgefangen werden. Stelle sicher, dass deine Website nur über HTTPS erreichbar ist.

Sessions in Plesk konfigurieren

Bei Hosting mit Plesk kannst du pro Domain angepasste PHP-Einstellungen vornehmen, entweder über die PHP-Einstellungen des Abonnements oder über eine eigene php.ini in den Hosting-Einstellungen. So kannst du pro Website andere Werte für cookie_secure, cookie_samesite oder gc_maxlifetime festlegen, ohne die serverweite Konfiguration zu ändern. Auf NVMe-Speicher mit LiteSpeed verarbeitest du diese Einstellungen sofort, ohne nennenswerte Verzögerung für Besucher.

Bist du unsicher, ob deine aktuelle Hostingumgebung eine gute PHP-Sicherheit unterstützt? Sieh dir die Möglichkeiten von Webhosting mit Festpreisen und kostenlosem SSL an, oder lies, wie der Wechsel zu Tandata funktioniert, wenn deine Sitzungssicherheit derzeit nicht gut geregelt ist.

Häufig gestellte Fragen

Warum funktionieren meine Sessions nach dem Einstellen von cookie_secure nicht mehr?

Wenn deine Website noch über HTTP statt HTTPS läuft, wird das Cookie nicht gesendet, sobald cookie_secure aktiviert ist. Überprüfe, ob dein SSL-Zertifikat aktiv und gültig ist.

Ist die Verwendung von Sessions sicherer als JWT-Tokens?

Beide haben Vor- und Nachteile. Sessions lassen sich serverseitig leichter widerrufen, während JWT-Tokens zustandslos sind. Für die meisten regulären Websites sind gut konfigurierte Sessions ausreichend sicher.

Wie lange sollte ich session.gc_maxlifetime einstellen?

Das hängt von deiner Anwendung ab. Für einen Webshop oder eine informative Website genügt oft eine kürzere Lebensdauer, während ein Dashboard, bei dem Benutzer lange angemeldet bleiben, einen längeren Wert verwenden kann.

Kann ich Sitzungsdateien auch in einer Datenbank speichern?

Ja, mit einem eigenen Session-Handler kannst du Sitzungsdaten beispielsweise in MySQL statt in Dateien speichern. Das ist nützlich bei Lastverteilung über mehrere Server.

Wo finde ich weitere Informationen zu Servereinstellungen?

In der Wissensdatenbank findest du weitere Artikel zu PHP-Konfiguration, SSL und Serververwaltung.

Fazit

Gut konfigurierte PHP-Sessions schützen Benutzerdaten vor Hijacking und Fixation. Sorge für die richtigen php.ini-Einstellungen, regeneriere Session-IDs nach dem Login, erzwinge HTTPS und zerstöre Sitzungen beim Abmelden korrekt. Mit der richtigen Hostingumgebung wendest du diese Einstellungen einfach an, ohne Abstriche bei der Geschwindigkeit zu machen.

Webhosting ansehen →

Was dit artikel nuttig?