Sichere Cookies für Shopware 6

Session-Cookies absichern mit framework.yaml: SameSite, Secure und HttpOnly für Storefront- und Administration-Sessions.

Shopware · Schritt für Schritt

Cookie-Sicherheit in Shopware 6

Sichere Cookie-Konfiguration schützt Session-Daten und Kundendaten vor Diebstahl und Manipulation. Shopware 6 nutzt Symfony-Sessions und setzt Cookies für Login, Warenkorb und CSRF-Schutz. Cookies sind mit 15 von 166 Punkten ein wichtiger Faktor im Wolf-Agents Web Security Check.

Die zentrale Konfiguration erfolgt über config/packages/framework.yaml im Abschnitt session. Hier setzen Sie cookie_secure, cookie_httponly und cookie_samesite für alle von Symfony verwalteten Session-Cookies. Für Custom Cookies aus Plugins nutzen Sie einen EventSubscriber.

Implementierung

Variante A (empfohlen): Session-Cookies über framework.yaml. Variante B: EventSubscriber für Custom Cookies, die nicht über Symfony-Sessions verwaltet werden.

Variante A — framework.yaml (Empfohlen)
config/packages/framework.yaml Produktiv
# config/packages/framework.yaml — Session-Cookies
framework:
    session:
        # Cookie-Sicherheit
        cookie_secure: auto
        cookie_httponly: true
        cookie_samesite: lax
        # Session-Lebensdauer (Standard: 7200 = 2h)
        gc_maxlifetime: 7200
        # Cookie-Name anpassen (optional)
        name: sw_session
Variante B — EventSubscriber
SecurityHeaderSubscriber.php Custom Cookies
// EventSubscriber für zusätzliche Cookie-Header
public function onResponse(ResponseEvent $event): void
{
    $response = $event->getResponse();

    // Alle Cookies mit Secure und SameSite absichern
    foreach ($response->headers->getCookies() as $cookie) {
        if (!$cookie->isSecure()) {
            $response->headers->setCookie(
                Cookie::create($cookie->getName())
                    ->withValue($cookie->getValue())
                    ->withExpires($cookie->getExpiresTime())
                    ->withPath($cookie->getPath())
                    ->withDomain($cookie->getDomain())
                    ->withSecure(true)
                    ->withHttpOnly($cookie->isHttpOnly())
                    ->withSameSite('lax')
            );
        }
    }
}
cookie_secure: auto

Der Wert auto setzt das Secure-Flag nur wenn die Verbindung über HTTPS läuft. Das ist sicherer als true, da Cookies in der lokalen Entwicklungsumgebung (HTTP) weiterhin funktionieren.

Verifizierung

Prüfen Sie die Cookie-Attribute im Network-Tab der Browser DevTools oder per curl.

Terminal Verifizierung
# Cache leeren
bin/console cache:clear

# Set-Cookie-Header prüfen
curl -sI https://ihr-shop.de | grep -i set-cookie

# Erwartete Attribute: Secure; HttpOnly; SameSite=Lax

Häufige Fehler

Plugin-Cookies ohne Secure-Flag

Shopware-Plugins können eigene Cookies setzen, die die framework.yaml-Konfiguration umgehen. Prüfen Sie alle Set-Cookie-Header in den DevTools und sichern Sie Plugin-Cookies per EventSubscriber ab.

SameSite=Strict bricht Payment-Redirects

Payment-Provider leiten den Kunden nach der Zahlung zurück zum Shop. Mit SameSite=Strict wird die Session nicht mitgesendet und der Warenkorb erscheint leer. Verwenden Sie Lax für E-Commerce.

Consent-Manager-Cookies nicht abgesichert

Der integrierte Cookie-Consent-Manager von Shopware setzt eigene Cookies. Stellen Sie sicher, dass auch diese Cookies Secure und HttpOnly Flags tragen.

Compliance-Anforderungen

DSGVOArt. 32 — Technische Maßnahmen zum Schutz personenbezogener Daten. Sichere Cookies verhindern Session-Hijacking.
PCI DSS 4.0Requirement 6.2.4 — Sichere Session-Verwaltung für Webanwendungen mit Zahlungsverkehr
NIS2Art. 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.