Sichere Cookie-Konfiguration in PHP

Schritt-für-Schritt-Anleitung: Session-Cookies und eigene Cookies in PHP absichern — mit .user.ini, session_set_cookie_params() und dem __Host-Prefix.

PHP · Schritt für Schritt

Sichere Cookie-Konfiguration in PHP

Sichere Cookies schützen Session-Daten vor Session-Hijacking, XSS und CSRF. PHP bietet sowohl php.ini/.user.ini-Direktiven für Session-Cookies als auch die setcookie()-Funktion mit Options-Array (ab PHP 7.3). Mit 15 von 166 Punkten im Wolf-Agents Web Security Check.

PHP-Sessions werden standardmäßig ohne Secure, HttpOnly und SameSite-Attribute gesetzt. Das macht sie anfällig für Angriffe. Mit der .user.ini können Sie alle Session-Cookie-Attribute zentral konfigurieren — ohne Code-Änderungen.

1 Schritt 1 von 3

Session-Cookies in .user.ini absichern

Konfigurieren Sie alle Session-Cookie-Attribute zentral in der .user.ini. Der __Host--Prefix erzwingt Secure, Path=/ und verhindert Domain-Attribute — maximale Sicherheit für Session-Cookies.

.user.ini Produktiv
; .user.ini — Session-Cookie-Sicherheit

session.cookie_secure = On
session.cookie_httponly = On
session.cookie_samesite = Lax
session.use_strict_mode = On
session.use_only_cookies = On
session.cookie_lifetime = 0
session.name = __Host-PHPSESSID
2 Schritt 2 von 3

Eigene Cookies sicher setzen

Verwenden Sie das Options-Array von setcookie() (PHP 7.3+). Die alte Signatur mit einzelnen Parametern unterstützt kein SameSite-Attribut.

app.php Produktiv
<?php
// Eigene Cookies sicher setzen (PHP 7.3+)
setcookie('preference', $value, [
    'expires'  => time() + 86400 * 30,
    'path'     => '/',
    'domain'   => '',
    'secure'   => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);

// Alternativ: session_set_cookie_params() vor session_start()
session_set_cookie_params([
    'lifetime' => 0,
    'path'     => '/',
    'secure'   => true,
    'httponly' => true,
    'samesite' => 'Lax',
]);
session_start();
Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige Prüfung aller Cookie-Attribute.
3 Schritt 3 von 3

Häufige Fehler

session_start() vor session_set_cookie_params()

session_set_cookie_params() muss vor session_start() aufgerufen werden. Andernfalls werden die Standard-Attribute verwendet. Besser: Konfiguration in .user.ini — dort gilt sie automatisch.

SameSite=Strict bricht OAuth-Flows

SameSite=Strict blockiert Cookies bei Cross-Site-Redirects — OAuth-Callbacks verlieren die Session. Verwenden Sie SameSite=Lax als sicheren Standard, der Top-Level-Navigationen erlaubt.

__Host-Prefix ohne Secure

Der __Host--Prefix erfordert Secure und Path=/. Ohne diese Attribute ignoriert der Browser den Cookie komplett. Stellen Sie sicher, dass Ihre Seite über HTTPS erreichbar ist.

Compliance-Relevanz

OWASP ASVS — V3.4 fordert Secure, HttpOnly und SameSite für alle Session-Cookies.
DSGVO — Sichere Cookie-Konfiguration ist Teil der technischen Maßnahmen nach Art. 32.
PCI DSS 4.0 — Anforderung 6.5.10 — Session-Cookies müssen gegen Hijacking und Fixation geschützt sein.
NIS2 — Art. 21(e) — Sicherheit bei Entwicklung und Wartung von Informationssystemen.

Wie steht Ihre Domain bei Sichere Cookies?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.