Zum Inhalt springen
checkfrei
Menü

X-Content-Type-Options: nosniff setzen und was es bewirkt

Stand: 3. Oktober 2026 · CAZ Labs

Kurz gesagt

Der Header `X-Content-Type-Options: nosniff` verbietet dem Browser, den Dateityp selbst zu erraten. Eine Datei, die der Server als Bild oder Text ausliefert, wird dann nicht als Skript ausgeführt. Es gibt genau einen gültigen Wert, und du setzt ihn mit einer Zeile Konfiguration.

Warum das wichtig ist

Jede Datei, die dein Server ausliefert, bekommt einen Content-Type mit, etwa text/html, image/jpeg oder text/javascript. Browser haben früher versucht, falsche Angaben auszubügeln, und den Inhalt selbst untersucht. Dieses Raten heißt MIME-Sniffing.

Das Problem dabei: Lädt jemand über ein Upload-Formular eine Datei hoch, die wie ein Bild heißt, aber HTML oder JavaScript enthält, kann ein ratender Browser sie als ausführbaren Code behandeln. Mit nosniff hält sich der Browser strikt an den angegebenen Typ. Skripte und Stylesheets mit falschem Typ blockiert er.

Aktuelle Browser raten deutlich zurückhaltender als früher, der Sicherheitsgewinn ist also überschaubar. Der Header kostet aber nichts, macht praktisch nie Probleme und taucht in Sicherheitsscans regelmäßig als Befund auf, wenn er fehlt. Er gehört zur Grundausstattung jeder Serverkonfiguration, genau wie HSTS und die Referrer-Policy.

So prüfst du es selbst

Entwicklertools (F12), Reiter „Netzwerk“, erster Eintrag, Antwort-Header. Oder im Terminal:

bash
curl -sI https://example.de | grep -i x-content-type

Was checkfrei prüft

Die Antwort sollte x-content-type-options: nosniff lauten. checkfrei sucht genau diesen Header auf deiner Seite. Fehlt er, gibt es eine Warnung. Im kostenlosen Check siehst du alle Sicherheitsheader auf einen Blick.

So behebst du es

Klick nach dem Setzen einmal durch die Seite und schau in der Konsole nach Meldungen wie „Refused to execute script … because its MIME type … is not executable“. Die erscheinen nur, wenn dein Server eine Datei mit falschem Typ ausliefert, etwa JavaScript als text/plain. Dann ist der Header nicht schuld, er macht den Fehler nur sichtbar. Korrigier in dem Fall den Typ in der Serverkonfiguration.

Apache (.htaccess)

Gilt auch für WordPress auf Apache- oder LiteSpeed-Hosting. Die Zeilen gehören in die .htaccess im Hauptverzeichnis, am besten oberhalb von # BEGIN WordPress, weil WordPress den Bereich zwischen BEGIN und END bei Bedarf neu schreibt.

apache
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
</IfModule>

nginx

In den server-Block, oder in den http-Block, wenn es für alle Seiten gelten soll.

nginx
add_header X-Content-Type-Options "nosniff" always;

WordPress

WordPress sendet den Header von sich aus nur bei einigen internen Anfragen, etwa an die REST-API, für deine normalen Seiten nicht. Am einfachsten setzt du ihn über die .htaccess wie oben. Auf nginx-Hosting oder ohne Dateizugriff frag deinen Hoster. Manche bieten die gängigen Sicherheitsheader im Kundenbereich als Option an.

Next.js

js
// next.config.mjs
const nextConfig = {
  async headers() {
    return [
      {
        source: "/:path*",
        headers: [{ key: "X-Content-Type-Options", value: "nosniff" }],
      },
    ];
  },
};

export default nextConfig;

Vercel

In der Datei vercel.json im Hauptverzeichnis des Projekts:

json
{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        { "key": "X-Content-Type-Options", "value": "nosniff" }
      ]
    }
  ]
}

Netlify

In der Datei _headers im Ausgabeordner. Weitere Header schreibst du einfach als zusätzliche eingerückte Zeilen darunter.

txt
/*
  X-Content-Type-Options: nosniff

HTML, Shopify, Wix und Jimdo

Als Meta-Tag funktioniert dieser Header nicht. Bei einer statischen HTML-Seite setzt du ihn über die Serverkonfiguration oder die Einstellungen deines Hosters. Bei Shopify, Wix und Jimdo kannst du keine eigenen Header setzen, das entscheidet die Plattform.

So prüft checkfrei

Wir suchen X-Content-Type-Options: nosniff. Fehlt der Header, gibt es eine Warnung.

Gewicht 1 von 3 im Bereich Sicherheit.

Häufige Fragen

Welche Werte gibt es für X-Content-Type-Options?

Nur einen: nosniff. Andere Werte ignoriert der Browser.

Kann nosniff meine Website kaputtmachen?

Nur, wenn dein Server Skripte oder Stylesheets mit falschem Content-Type ausliefert. Das kommt selten vor und ist dann ohnehin ein Fehler, den du beheben solltest.

Reicht nosniff als Schutz gegen Schadcode?

Nein. Der Header schließt eine bestimmte Lücke beim Umgang mit Dateitypen. Gegen eingeschleuste Skripte hilft eher eine Content-Security-Policy, gegen bekannte Lücken nur Updates.

Jetzt deine Seite prüfen

checkfrei prüft X-Content-Type-Options und 68 weitere Punkte in einem Durchgang. Kostenlos und ohne Anmeldung.