Zum Hauptinhalt springen
  1. Blog/

Shopware 6 härten mit Security Headers

3 min·
Cyber-Security Shopware Web Security E-Commerce
Inhaltsverzeichnis

Vor kurzem machte mich ein Kunde auf ein potenzielles Sicherheitsrisiko in seinem Shopware-6-Shop aufmerksam. Bei einer genaueren Analyse stellte sich heraus: Shopware 6 bringt zwar grundlegende Schutzmechanismen mit, doch insbesondere im Bereich der HTTP Security Headers gibt es Optimierungspotenzial.

Insbesondere in Szenarien wie dem Wartungsmodus oder bei unausgereiften Konfigurationen fehlen wichtige Header wie Content-Security-Policy, Permissions-Policy oder X-Frame-Options. Das Ergebnis: Tools wie securityheaders.com geben dem Shop im schlimmsten Fall ein F – trotz aktiver Shopsoftware.

Aus dieser Erkenntnis heraus habe ich ein Plugin entwickelt, das es Administratoren ermöglicht, wichtige Security Headers gezielt und flexibel zu konfigurieren – ohne die Funktionalität des Shops einzuschränken.

Header Before

Warum fehlende Security Headers ein Risiko darstellen
#

Shopware 6 nutzt von Haus aus Symfony und bringt bereits einige Sicherheitsfunktionen mit. Dennoch sind bestimmte HTTP Response Header entweder nicht gesetzt oder nicht konfigurierbar, was in verschiedenen Szenarien – insbesondere bei der Wartungsseite oder externen Plugins – zu ernsthaften Sicherheitslücken führen kann.

1. Content-Security-Policy (CSP)
#

Ohne CSP können Browser nahezu jeden eingebetteten Inhalt (Scripts, Styles, iFrames) ausführen – inklusive schädlichem JavaScript durch Cross-Site Scripting (XSS). Risiko: Angreifer könnten manipulierte Inhalte injizieren und sensible Daten wie Session-IDs oder Formulareingaben abgreifen.

Technisch: Ein fehlender oder zu lockerer Header wie:

Content-Security-Policy: default-src *;

erlaubt unkontrollierte Inhalte von beliebigen Quellen. Eine sichere Variante:

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com;

2. X-Frame-Options
#

Shopseiten können ohne diesen Header in fremde iFrames eingebettet werden. Risiko: Dies öffnet Tür und Tor für Clickjacking-Angriffe.

Technisch: Fehlender Header bedeutet kein Schutz. Richtig wäre z. B.:

X-Frame-Options: DENY

3. Permissions-Policy (ehemals Feature-Policy)
#

Ohne diese Richtlinie können Browserfunktionen wie Kamera, Mikrofon oder Geolokalisierung ohne Einschränkungen von eingebetteten Inhalten verwendet werden.

Risiko: Potenziell ungewollte Nutzung durch Drittanbieter – z. B. Tracking via Geolocation.

Permissions-Policy: camera=(), microphone=(), geolocation=()

4. Strict-Transport-Security (HSTS)
#

Fehlt dieser Header, ist ein Downgrade von HTTPS zu HTTP möglich – z. B. durch Man-in-the-Middle-Angriffe.

Strict-Transport-Security: max-age=63072000; includeSubDomains; preload

Header Before

Meine Entscheidung für ein eigenes Plugin
#

Im Shopware Store gibt es zwar ein Plugin für rund 6 € pro Monat, das die Sicherheit der HTTP-Header verbessert, jedoch greift es etwa nicht im Wartungsmodus. Da ich viele Kunden betreue, die auf Shopware setzen, habe ich ein eigenes Plugin entwickelt und stelle es kostenlos allen zur Verfügung.

Mein Plugin bietet eine flexible Rundum-Lösung zum Schutz moderner Webanwendungen – ideal als Vorbereitung auf Penetrationstests und für regelmäßige Wartungsarbeiten.

Weitere Details und den Quellcode finden Sie auf meiner GitHub-Seite

Warum das Thema wichtig ist
#

Fehlende oder falsch konfigurierte Sicherheitsheader:

  • machen Webseiten anfälliger für Angriffe
  • können zu Abwertungen bei Google und anderen Plattformen führen
  • senken das Vertrauen der Kunden

Mit einem sauberen Set an konfigurierbaren Sicherheitsheadern lassen sich viele dieser Risiken effektiv reduzieren – ohne tief in Serverkonfigurationen eingreifen zu müssen.

🤝 Beitrag und Unterstützung
#

Fehler oder Verbesserungsvorschläge? Bitte erstellen Sie ein Issue oder einen Pull Request auf GitHub.