X-Content-Type-Options für Shopware 6
MIME-Sniffing verhindern per EventSubscriber — eine Zeile Code für Schutz vor Upload-Angriffen und Asset-Manipulation.
X-Content-Type-Options in Shopware 6
X-Content-Type-Options: nosniff verhindert, dass Browser den MIME-Typ von Ressourcen erraten (MIME-Sniffing). Ohne diesen Header können hochgeladene Dateien als ausführbare Scripts interpretiert werden. X-Content-Type-Options ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check bewertet.
Für Shopware-Shops mit Produkt-Uploads, Medien-Manager und Plugin-Assets ist dieser Header besonders wichtig. Die Konfiguration erfolgt über einen EventSubscriber — eine einzige Zeile Code mit großer Wirkung.
Implementierung
Variante A (empfohlen): EventSubscriber. Variante B: Nginx für Self-Hosted.
// SecurityHeaderSubscriber.php — X-Content-Type-Options
public function onResponse(ResponseEvent $event): void
{
$response = $event->getResponse();
// MIME-Sniffing verhindern
$response->headers->set(
'X-Content-Type-Options',
'nosniff'
);
}# Nginx — Alternative für Self-Hosted
add_header X-Content-Type-Options "nosniff" always;Shopware erlaubt Produkt-Bilder, PDF-Downloads und andere Medien-Uploads. Ohne nosniff könnte ein als Bild hochgeladenes SVG mit eingebettetem JavaScript vom Browser als Script ausgeführt werden.
Verifizierung
Nach dem Cache-Leeren prüfen Sie den Header.
# Cache leeren
bin/console cache:clear
# X-Content-Type-Options prüfen
curl -sI https://ihr-shop.de | grep -i x-content-type-options
# Erwartete Ausgabe:
# x-content-type-options: nosniff
# Auch statische Assets prüfen
curl -sI https://ihr-shop.de/theme/yourtheme/style.css | grep -i x-content-type-optionsHäufige Fehler
Header fehlt auf statischen Assets
Wenn Nginx statische Dateien direkt ausliefert, greift der EventSubscriber nicht. Setzen Sie X-Content-Type-Options: nosniff zusätzlich in der Webserver-Konfiguration für das public/-Verzeichnis.
Shopware HTTP Cache liefert gecachte Header
Der HTTP-Cache kann veraltete Header ausliefern. Nach Änderungen: bin/console cache:clear und bin/console http:cache:clear.
CDN-Assets ohne Header
Wenn Sie ein CDN für Assets nutzen, muss der Header auch dort gesetzt sein. Konfigurieren Sie das CDN, den Header vom Origin durchzureichen.
Compliance-Relevanz
X-Content-Type-Options ist eine einfache aber wirksame Maßnahme gegen MIME-Confusion-Angriffe. Besonders für Shopware-Shops mit Datei-Uploads ist der Header ein Pflicht-Baustein in der Sicherheitsarchitektur.
Wie steht Ihre Domain bei X-Content-Type-Options?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.