Cookie-Sicherheit für WordPress konfigurieren
Schritt-für-Schritt-Anleitung: Secure, HttpOnly und SameSite für WordPress-Cookies einrichten — mit functions.php, wp-config.php, WooCommerce-Hinweisen und fertigen Code-Snippets zum Kopieren.
Wie steht Ihre Domain bei Cookie-Sicherheit?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Welche Cookie-Namen setzt WordPress standardmäßig?
WordPress setzt bei der Anmeldung mehrere Cookies: wordpress_logged_in_[hash] (Login-Status, sichtbar für JS), wordpress_sec_[hash] (Admin-Authentifizierung, HttpOnly), wp-settings-[userId] (Editor-Einstellungen) sowie comment_author_ und comment_author_email_ für Kommentare. Der Hash im Namen basiert auf dem COOKIEHASH-Wert aus wp-config.php (standardmäßig der MD5-Hash der Siteurl). Alle Authentifizierungs-Cookies sollten Secure und SameSite=Strict tragen.
Plugin oder Code — was ist besser für Cookie-Sicherheit in WordPress?
Für Cookie-Flags ist der Code-Ansatz (functions.php + wp-config.php) die zuverlässigere Wahl: Er ist nicht von Plugin-Updates abhängig, läuft immer und erzeugt keinen zusätzlichen Overhead. Plugins wie "Headers & Cookie Security" oder "WP Headers" sind eine gute Alternative für Nutzer ohne Entwicklerkenntnisse, haben aber Abhängigkeiten und können deaktiviert werden. Wenn Sie Entwickler-Zugriff haben, bevorzugen Sie den direkten Code-Ansatz.
Funktioniert FORCE_SSL_ADMIN auch ohne gültiges SSL-Zertifikat?
Nein. FORCE_SSL_ADMIN leitet das WordPress-Backend auf HTTPS um — ist kein gültiges Zertifikat vorhanden, erscheint eine Zertifikatswarnung und das Backend ist nicht mehr nutzbar. Stellen Sie sicher, dass Ihr SSL-Zertifikat (z.B. via Let's Encrypt) aktiv und gültig ist, bevor Sie diese Konstante setzen. Wer noch kein Zertifikat hat, kann kostenlos eins über Certbot beziehen.
Verlieren Nutzer ihre Session nach dem Aktivieren von SameSite=Strict?
Bestehende Sessions bleiben erhalten. Neue Cookies werden mit SameSite=Strict gesetzt. Ein relevanter Seiteneffekt: Nutzer, die über einen externen Link (z.B. E-Mail, Bookmark) direkt zu einer geschützten Seite navigieren, müssen sich neu anmelden, da der Cookie beim Cross-Site-Request nicht mitgesendet wird. Für öffentliche Blogs mit häufig externen Besuchern kann SameSite=Lax besser geeignet sein.
WooCommerce: Gibt es besondere Cookie-Anforderungen?
Ja. WooCommerce setzt zusätzliche Cookies: woocommerce_cart_hash und woocommerce_items_in_cart (Session-Erkennung), wp_woocommerce_session_[hash] (Warenkorb-Daten) sowie woocommerce_recently_viewed. Für den Checkout mit externen Payment-Providern (Stripe, PayPal) darf SameSite nicht auf Strict gesetzt werden — der Redirect von der Payment-Seite zurück zum Shop würde die Session/Warenkorb-Cookies nicht mitsenden und der Checkout würde scheitern. Verwenden Sie für WooCommerce SameSite=Lax.
Wie setze ich unterschiedliche SameSite-Werte für verschiedene WordPress-Cookies?
Im wp_headers-Filter können Sie gezielt nach Cookie-Namen unterscheiden: Prüfen Sie mit strpos() ob der Cookie-Name mit "wordpress_logged_in" beginnt (dann SameSite=Lax für Kompatibilität) oder mit "wordpress_sec" (dann SameSite=Strict für maximale Sicherheit). Drittanbieter-Cookies wie Stripe-Session-Cookies sollten Sie gar nicht anfassen — die kommen nicht über WordPress.
Muss ich die functions.php im Child-Theme bearbeiten?
Ja, unbedingt. Änderungen in der functions.php des Parent-Themes werden bei Theme-Updates überschrieben. Erstellen Sie immer ein Child-Theme und tragen Sie den Code dort ein — oder besser noch: in ein Site-Specific Plugin (ein eigenes Mini-Plugin nur für Ihre Anpassungen), das vollständig theme-unabhängig ist.