X-Content-Type-Options für Nuxt 3
Schritt-für-Schritt: MIME-Sniffing in Nuxt 3 verhindern — X-Content-Type-Options: nosniff per nuxt-security, routeRules oder Nitro Middleware.
X-Content-Type-Options in Nuxt 3
X-Content-Type-Options: nosniff verhindert, dass Browser den MIME-Type einer Ressource erraten (MIME-Sniffing). Ohne diesen Header können Angreifer Textdateien als JavaScript ausführen lassen. Mit 10 von 166 Punkten ist dieser Header ein relevanter Faktor im Wolf-Agents Web Security Check.
Das nuxt-security Modul setzt X-Content-Type-Options: nosniff automatisch. Ohne das Modul genügt eine einzige Zeile in routeRules. Stellen Sie zusätzlich sicher, dass Ihre Nitro-API-Routen den korrekten Content-Type setzen.
nosniff-Header setzen
Aktivieren Sie X-Content-Type-Options: nosniff über eine der drei Methoden. Der Header hat nur einen gültigen Wert (nosniff) und keine weitere Konfiguration.
// nuxt.config.ts — nuxt-security (setzt nosniff automatisch)
export default defineNuxtConfig({
modules: ['nuxt-security'],
security: {
headers: {
xContentTypeOptions: 'nosniff',
},
},
}) // nuxt.config.ts — routeRules
export default defineNuxtConfig({
routeRules: {
'/**': {
headers: {
'X-Content-Type-Options': 'nosniff',
},
},
},
}) // server/middleware/xcto.ts — Nitro Middleware
export default defineEventHandler((event) => {
setHeader(event,
'X-Content-Type-Options',
'nosniff'
);
}) Content-Types korrekt setzen
Mit nosniff verweigert der Browser das Laden von Ressourcen, deren Content-Type nicht zum erwarteten Typ passt. Stellen Sie sicher, dass Ihre Nitro-API-Routen den korrekten Content-Type setzen.
Nitro erkennt den Rückgabetyp von Event Handlern automatisch: Objekte werden als application/json gesendet, Strings als text/html. Bei Dateien aus public/ bestimmt die Dateiendung den MIME-Type.
Header verifizieren
Prüfen Sie den nosniff-Header für HTML-Seiten und API-Routen. Der Wolf-Agents Web Security Check bewertet diesen Header und meldet fehlende Konfigurationen.
# nosniff-Header prüfen
curl -sI https://ihre-domain.de | grep -i x-content-type
# Erwartete Ausgabe:
# X-Content-Type-Options: nosniff
# Auch API-Routen prüfen:
curl -sI https://ihre-domain.de/api/health | grep -i x-content-type
# Erwartete Ausgabe:
# X-Content-Type-Options: nosniff Häufige Fehler
Falscher Content-Type bei API-Routen
Wenn eine API-Route einen String statt eines Objekts zurückgibt, setzt Nitro text/html statt application/json. Mit nosniff blockiert der Browser dann JSON-Parsing.
CSS/JS-Dateien ohne Content-Type
Statische Dateien aus public/ ohne korrekte Endung erhalten möglicherweise application/octet-stream. Mit nosniff werden sie nicht als CSS/JS geladen.
Header fehlt bei CDN-Assets
Wenn Sie ein CDN (Vercel Edge, Cloudflare) vor Nuxt nutzen, kann das CDN den Header entfernen. Prüfen Sie die CDN-Konfiguration und setzen Sie den Header ggf. dort.
Compliance-Relevanz
X-Content-Type-Options: nosniff ist eine grundlegende Sicherheitsmaßnahme gegen MIME-Type-Confusion-Angriffe. OWASP empfiehlt diesen Header standardmäßig. PCI DSS und NIS2 fordern Schutz gegen bekannte Angriffsvektoren. Der Wolf-Agents Web Security Check bewertet diesen Header mit bis zu 10 Punkten.
Wie steht Ihre Domain bei X-Content-Type-Options?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.