Prüfpunkt software.contenttype.falschKopfzeilen und Einbettung
Warum muss der Server den Dateityp von Skripten richtig angeben?
Mit jeder Datei schickt der Server eine Kopfzeile Content-Type, die sagt, was die Datei ist: ein Skript, ein Stylesheet, ein Bild. Stimmt die Angabe nicht, muss der Browser raten oder blockiert die Datei. Die Prüfung ruft auf jeder gemessenen Seite einige eigene Skripte, Stylesheets und Bilder ab und meldet die Zahl der Dateien, deren Typangabe nicht passt, dazu eine mit Adresse und gemeldetem Typ.
Browser lesen die Kopfzeile, die Dateiendung zählt dabei nicht

Eine Datei namens shop.js ist für den Browser noch kein Skript. Er behandelt sie so, wie die Kopfzeile Content-Type es sagt. Kennt der Webserver eine Endung nicht, schicken die meisten Server application/octet-stream, was „unbekannte Binärdatei“ bedeutet. Das trifft vor allem neuere Dateiarten: .js-Dateien ordnen die meisten Server richtig zu, bei .mjs, der Endung für Skriptmodule, fehlt manchen laut MDN der Eintrag.
Skriptmodule laufen bei falscher Angabe gar nicht
Bei Skriptmodulen, die moderne Anwendungen oft verwenden, gibt es keine Nachsicht: Fehlt der JavaScript-Typ, meldet der Browser einen Fehler und startet das Skript nicht. In der Konsole des Browsers steht dann etwa „The server responded with a non-JavaScript MIME type“. Das kann nach einem Serverumzug auftreten, wenn die neue Umgebung Endungen anders zuordnet.
Wo das Skript fehlt, reagiert der Knopf nicht
Ein blockiertes Skript zeigt dem Besucher keine Meldung. Er sieht einen Warenkorb-Knopf ohne Wirkung, eine leere Zahlungsauswahl oder ein Formular, das nicht abschickt. Wer kaufen wollte, versucht es woanders. Die Seite selbst antwortet dabei normal, deshalb schlägt eine einfache Überwachung der Erreichbarkeit nicht an.
Hochgeladene Dateien verdienen besondere Vorsicht
Bietet Ihre Website Uploads an, etwa für Bewerbungen oder Profilbilder, nennt der Absender den Typ seiner Datei selbst. OWASP warnt, dass sich diese Angabe leicht fälschen lässt. Rät der Browser dann, könnte die Datei unter Ihrer Domain als Skript laufen. OWASP empfiehlt, Uploads auf einem anderen Server abzulegen oder wenigstens außerhalb des Webverzeichnisses. Die Kopfzeile nosniff ergänzt das: Sie sperrt Skripte und Stylesheets, deren Typ nicht passt.
Raten ist ein Einfallstor, Blockieren kostet Funktionen
Kommt ein Skript als text/plain oder text/html, behandeln Browser das unterschiedlich: manche führen es trotzdem aus, mit X-Content-Type-Options: nosniff blockieren sie es. Im einen Fall fehlt der Seite eine Funktion, ohne dass jemand den Grund sieht. Im anderen Fall richtet sich der Browser nach dem Inhalt statt nach dem Server; dann ließe sich eine Datei, die als Text oder Bild hochgeladen wurde, als Skript ausführen. Stylesheets mit falscher Angabe wendet der Browser oft gar nicht an, die Seite sieht dann ungestaltet aus.
Gemessen werden Skripte, Stylesheets und Bilder vom eigenen Server
Die Prüfung nimmt auf jeder gemessenen Seite bis zu fünf Skripte, drei Stylesheets und drei Bilder, die von Ihrem eigenen Server kommen, und ruft sie ab. Ein Skript muss als JavaScript gemeldet werden, ein Stylesheet als text/css, ein Bild als image/… Antwortet die Datei mit Status 200 und einer anderen Angabe, nennt der Bericht die Zahl der Dateien und ein Beispiel mit der gemeldeten Angabe. Dateien von fremden Servern und Antworten ohne Typangabe zählen hier nicht.
Die Typen gehören in die Konfiguration des Webservers
Webserver ordnen Dateiendungen über eine Liste Typen zu. Fehlt eine Endung darin oder überschreibt eine Regel sie, kommt die falsche Angabe heraus, oft bei .js-Dateien, die eine Anwendung über ein Skript ausliefert statt direkt vom Webserver. Ihr Hoster oder Ihre Agentur ergänzt die Zuordnung: text/javascript für .js und .mjs, text/css für .css, die passenden image/-Typen für Bilder. Dazu gehört X-Content-Type-Options: nosniff, damit der Browser nie rät.
Beispiele
Antwort für ein Skript
Content-Type: text/plainContent-Type: text/javascript; charset=utf-8
X-Content-Type-Options: nosniffMit nosniff führt der Browser ein Skript nur aus, wenn es als JavaScript ausgeliefert wird.
So gehen Sie es an
- Lassen Sie Ihre Agentur die Beispieldatei aus dem Bericht aufrufen und die Kopfzeile Content-Type ansehen.
- Sie findet heraus, wer die Datei ausliefert: der Webserver direkt oder ein Skript der Anwendung.
- Ihr Hoster ergänzt die Zuordnung der Endungen am Webserver; die Anwendung setzt den Typ, wenn sie Dateien selbst ausliefert.
- Prüfen Sie danach die Seite in einem aktuellen Browser auf fehlende Funktionen und Gestaltung.
- Lassen Sie die Website neu messen. Der Bericht zeigt, ob noch eine Datei mit falscher Typangabe kommt.
Tipps aus der Praxis
- Meldet der Bericht bei einem Skript text/html, kann die Datei fehlen und der Server eine Ersatzseite schicken. Öffnen Sie die Adresse im Browser: Sehen Sie eine Seite statt Code, fehlt die Datei.
- Halten Sie die Reihenfolge ein: erst die Typen korrigieren, dann nosniff einschalten. Mit nosniff sperrt der Browser jede unpassende Datei sofort.
- Nehmen Sie den Blick auf die Typangabe in die Abnahme jedes Serverumzugs auf: je eine Skript-, Stylesheet- und Bilddatei aufrufen und die Kopfzeile ansehen.
Weiter in der Cybersicherheit
- Wie wird eine kleine Website angegriffen?Bekannte Lücken, Anmeldung, Fehlkonfiguration, fremde Skripte: die Wege in kleine Websites nach BSI, ENISA, Verizon und Patchstack. Woran Sie jeden erkennen.
- Was kann ein Angriff auf meiner Website anrichten?Kartendaten aus dem Bestellformular, Besucher auf Betrugsseiten, 20 Millionen Pfund Bußgeld: echte Fälle mit Quelle und dem Merkmal, das den Weg zeigt.
- Welche fremden Websites dürfen Antworten Ihres Servers lesen?Mit CORS legt Ihr Server fest, welche anderen Websites seine Antworten lesen dürfen. Gibt er jede Herkunft samt Anmeldung frei, kann jede Seite mitlesen.
- Was verraten Debug-Werkzeuge und Statusseiten über Ihre Website?Debug-Leisten und Statusseiten zeigen Datenbankabfragen, Versionen und Servernamen. Die Prüfung ruft sieben bekannte Adressen ab und meldet nur echte Interna.
Dieser Prüfpunkt gehört zur Cybersicherheit, Unterthema Kopfzeilen und Einbettung. Gemessen wird er im Prüfbereich Aktualität. Was die Prüfung insgesamt leistet, zeigt die Leistungsseite; wie ein Ergebnis zustande kommt, erklärt das Prüfverfahren.




