Cookie-Sicherheit für Apache konfigurieren
Schritt-für-Schritt-Anleitung: Secure, HttpOnly und SameSite auf Apache einrichten — per php.ini, .htaccess und mod_headers mit IfModule-Wrapper. Auch für Shared Hosting ohne Root-Zugriff.
Wie steht Ihre Domain bei Cookie-Sicherheit?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Warum ist php.ini besser als mod_headers für Cookie-Flags auf Apache?
Die Methode mit mod_headers und "Header always edit Set-Cookie" verwendet reguläre Ausdrücke, die doppelte Flags erzeugen können — z.B. "SameSite=Lax; SameSite=Strict" — wenn das Flag bereits von der Anwendung gesetzt wurde. php.ini dagegen steuert die Cookie-Generierung direkt an der Quelle und ist damit zuverlässiger und einfacher zu debuggen.
Was ist der Unterschied zwischen php.ini und .htaccess für Cookie-Konfiguration?
php.ini gilt serverübergreifend für alle PHP-Anwendungen auf dem Server — dafür brauchen Sie Root-Zugriff. .htaccess-Einstellungen (php_value session.cookie_secure 1) gelten nur für das jeweilige Verzeichnis und dessen Unterordner. Auf Shared Hosting ohne Root-Zugriff ist .htaccess oft die einzige Option. Beide Methoden erfordern PHP 7.3+ für session.cookie_samesite.
Wozu dient der IfModule-Wrapper in Apache-Konfigurationen?
Der IfModule-Wrapper (z.B. <IfModule mod_headers.c>) verhindert, dass Apache mit einem Fehler startet, wenn das jeweilige Modul nicht geladen ist. Auf Shared Hosting oder minimalen Apache-Installationen kann mod_headers fehlen. Der IfModule-Wrapper macht die Konfiguration robuster — der Server startet auch ohne das Modul, setzt dann aber keine Header.
Muss ich Apache nach Änderungen in .htaccess neu starten?
Nein. .htaccess-Dateien werden von Apache bei jedem Request neu eingelesen — ein Neustart oder Reload ist nicht erforderlich. Bei Änderungen in der Haupt-Konfigurationsdatei (httpd.conf oder apache2.conf) sowie bei php.ini-Änderungen müssen Sie Apache neu laden: sudo systemctl reload apache2 (Debian/Ubuntu) oder sudo systemctl reload httpd (RHEL/CentOS).
Funktioniert session.cookie_samesite auf allen PHP-Versionen?
Nein. Das Attribut session.cookie_samesite wurde erst mit PHP 7.3 eingeführt. Auf älteren PHP-Versionen (7.0, 7.1, 7.2) müssen Sie SameSite entweder direkt im Anwendungscode setzen (z.B. über setcookie() mit dem options-Array in PHP 7.3+) oder mod_headers als Fallback nutzen. Prüfen Sie Ihre PHP-Version mit php -v.
Wie prüfe ich, ob meine php.ini-Einstellungen aktiv sind?
Erstellen Sie eine temporäre Testdatei mit <?php phpinfo(); ?> und rufen Sie sie im Browser auf. Suchen Sie nach "session.cookie_secure", "session.cookie_httponly" und "session.cookie_samesite" — die Spalte "Local Value" zeigt den aktiven Wert. Entfernen Sie die Testdatei danach sofort, da phpinfo() sensible Serverinformationen offenbart.
Kann ich mod_headers und php.ini gleichzeitig verwenden?
Ja, aber es ist nicht empfehlenswert. Wenn php.ini bereits Secure und HttpOnly setzt und mod_headers dieselben Flags nochmals hinzufügt, entstehen keine Duplikate bei diesen binären Flags — aber bei SameSite kann es je nach Apache-Version und Konfiguration zu doppelten Werten kommen. Verwenden Sie eine einzige Methode: php.ini ist die zuverlässigere Wahl.