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.

Nuxt 3 · Schritt für Schritt

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.

1 Schritt 1 von 3

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
// nuxt.config.ts — nuxt-security (setzt nosniff automatisch)
export default defineNuxtConfig({
  modules: ['nuxt-security'],

  security: {
    headers: {
      xContentTypeOptions: 'nosniff',
    },
  },
})
nuxt.config.ts routeRules
// nuxt.config.ts — routeRules
export default defineNuxtConfig({
  routeRules: {
    '/**': {
      headers: {
        'X-Content-Type-Options': 'nosniff',
      },
    },
  },
})
server/middleware/xcto.ts Middleware
// server/middleware/xcto.ts — Nitro Middleware
export default defineEventHandler((event) => {
  setHeader(event,
    'X-Content-Type-Options',
    'nosniff'
  );
})
2 Schritt 2 von 3

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 setzt Content-Types automatisch

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.

3 Schritt 3 von 3

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.

Terminal Verifizieren
# 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.