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:
curl -sI https://example.de | grep -i x-content-typeWas 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.
<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.
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
// 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:
{
"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.
/*
X-Content-Type-Options: nosniffHTML, 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.