X-Content-Type-Options für LiteSpeed konfigurieren

Schritt-für-Schritt-Anleitung: MIME-Sniffing auf LiteSpeed verhindern — nosniff per .htaccess oder Web Admin Console setzen, MIME-Types prüfen.

LiteSpeed · Schritt für Schritt

X-Content-Type-Options auf LiteSpeed

X-Content-Type-Options: nosniff verhindert, dass Browser den MIME-Type von Ressourcen erraten (MIME-Sniffing). Ohne diesen Header könnte ein Angreifer eine als Bild getarnte JavaScript-Datei einschleusen und ausführen — ein klassischer Angriffsvektor, der mit einem einzigen Header eliminiert wird. nosniff ist ein einfacher One-Liner mit 10 von 166 Punkten im Wolf-Agents Web Security Check.

LiteSpeed unterstützt die Apache-kompatible mod_headers-Syntax. Die AddType-Direktiven stellen sicher, dass JavaScript als text/javascript (RFC 9239) ausgeliefert wird — Voraussetzung dafür, dass nosniff keine legitimen Ressourcen blockiert. LiteSpeed kann MIME-Types zusätzlich in der Web Admin Console unter Server Config > General > MIME Settings oder in /usr/local/lsws/conf/mime.properties konfigurieren.

1 Variante 1: .htaccess

nosniff per .htaccess setzen

Der einfachste Weg: Ein One-Liner in der .htaccess-Datei. Kombinieren Sie den Header mit korrekten MIME-Type-Zuordnungen, damit nosniff keine legitimen Ressourcen blockiert. Das always-Keyword stellt sicher, dass der Header auch bei Fehlerseiten (404, 500) gesendet wird.

.htaccess Shared Hosting
# .htaccess — nosniff auf LiteSpeed
<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
</IfModule>

# Korrekte MIME-Types sicherstellen
AddType text/javascript .js .mjs
AddType text/css .css
AddType application/json .json
AddType font/woff2 .woff2
AddType image/svg+xml .svg
AddType image/webp .webp
AddType image/avif .avif
2 Variante 2: vhconf.conf

Virtual-Host-Konfiguration

Auf eigenen Servern setzen Sie den Header in der vhconf.conf unter /usr/local/lsws/conf/vhosts/[name]/vhconf.conf. Die Web Admin Console (Port 7080) bietet das gleiche unter Virtual Hosts > [vhost] > Context > Header Operations. MIME-Types werden zentral in der mime.properties-Datei verwaltet.

vhconf.conf Eigener Server
# /usr/local/lsws/conf/vhosts/example/vhconf.conf
# Web Admin Console > Virtual Hosts > [vhost] > Context

context / {
  type                    NULL
  location                $DOC_ROOT/

  extraHeaders {
    Header always set X-Content-Type-Options "nosniff"
  }
}

# MIME-Types in der Web Admin Console:
# Server Config > General > MIME Settings
# Oder in /usr/local/lsws/conf/mime.properties
Warum korrekte MIME-Types wichtig sind

Mit nosniff akzeptiert der Browser nur den deklarierten Content-Type. Wenn JavaScript als application/octet-stream ausgeliefert wird, blockiert der Browser die Ausführung. Die AddType-Direktiven stellen sicher, dass alle gängigen Dateitypen korrekt deklariert sind.

Konfiguration testen und verifizieren

Nach dem Graceful Restart prüfen Sie den Header und die MIME-Types für verschiedene Dateitypen. Testen Sie auch Fehlerseiten — das always-Keyword sorgt dafür, dass der Header auch bei 404/500-Antworten gesendet wird. Der Wolf-Agents Web Security Check verifiziert X-Content-Type-Options automatisch.

Terminal Verifizierung
# 1. Graceful Restart (LiteSpeed cached .htaccess!)
/usr/local/lsws/bin/lswsctrl restart

# 2. Header prüfen
curl -sI https://ihre-domain.de | grep -i x-content-type

# Erwartete Ausgabe:
# X-Content-Type-Options: nosniff

# 3. MIME-Type für JavaScript prüfen
curl -sI https://ihre-domain.de/app.js | grep -i content-type
# Content-Type: text/javascript

# 4. Fehlerseiten testen (always-Keyword)
curl -sI https://ihre-domain.de/nicht-vorhanden | grep -i x-content-type
# X-Content-Type-Options: nosniff

# 5. CSS MIME-Type prüfen
curl -sI https://ihre-domain.de/style.css | grep -i content-type
# Content-Type: text/css

Häufige Fehler bei X-Content-Type-Options auf LiteSpeed

Diese LiteSpeed-spezifischen Fehler treten bei der nosniff-Konfiguration am häufigsten auf.

.htaccess cached — Header fehlt

LiteSpeed cached .htaccess. Ohne Graceful Restart wird der neue Header nicht ausgeliefert. Lösung: /usr/local/lsws/bin/lswsctrl restart

JavaScript mit falschem MIME-Type

Ältere LiteSpeed-Versionen liefern JS als application/javascript. Zwar akzeptiert nosniff beide Typen, aber text/javascript ist der RFC-9239-Standard. Setzen Sie AddType text/javascript .js.

LSCache liefert veralteten Header

Wenn LSCache Seiten cached hat, bevor nosniff gesetzt wurde, fehlt der Header in gecachten Responses. Leeren Sie LSCache nach der Änderung.

Web Admin Console überschreibt .htaccess

Header der Web Admin Console haben Vorrang über .htaccess. Prüfen Sie Virtual Hosts > Context > Header Operations auf Konflikte.

SVG-Dateien mit falschem MIME-Type

SVG-Dateien müssen als image/svg+xml ausgeliefert werden. Ohne korrekte Deklaration kann nosniff die Darstellung blockieren. Setzen Sie AddType image/svg+xml .svg.

Plesk LiteSpeed-Plugin verwaltet Header separat

Das Plesk LiteSpeed-Plugin hat ein eigenes Header-Management. Prüfen Sie, ob das Plugin nosniff bereits setzt und Ihre .htaccess-Konfiguration überschreibt.

Compliance-Relevanz

OWASP Top 10 empfiehlt nosniff als Härtungsmaßnahme gegen MIME-Type-Angriffe und Script-Injection. PCI DSS 4.0 (Anforderung 6.2.4) fordert Schutz gegen bekannte Schwachstellen — MIME-Sniffing ist eine davon. NIS2 (Art. 21) verlangt technische Sicherheitsmaßnahmen. BSI IT-Grundschutz (APP.3.1.A14) empfiehlt die Kontrolle von HTTP-Headern. Der Wolf-Agents Web Security Check bewertet X-Content-Type-Options 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.

Häufig gestellte Fragen

Warum ist nosniff auf LiteSpeed wichtig?

Ohne nosniff kann der Browser den MIME-Type einer Ressource erraten (MIME-Sniffing). Ein Angreifer könnte eine als Bild getarnte JavaScript-Datei einschleusen. nosniff verhindert dies, indem der Browser nur den deklarierten Content-Type akzeptiert.

Funktioniert nosniff mit LSCache?

Ja. LSCache cached den vollständigen Response inklusive Header. Der X-Content-Type-Options-Header wird korrekt mit ausgeliefert. Nach einer Änderung müssen Sie sowohl den .htaccess-Cache (Graceful Restart) als auch LSCache leeren.

Muss ich MIME-Types auf LiteSpeed konfigurieren?

LiteSpeed verwendet die gleiche MIME-Type-Konfiguration wie Apache. Die Standard-MIME-Types sind korrekt. Prüfen Sie mit curl -sI, ob JavaScript als text/javascript (RFC 9239) ausgeliefert wird.

Gibt es einen Unterschied zu nosniff auf Apache?

Die .htaccess-Syntax ist identisch. Der Unterschied: LiteSpeed cached .htaccess (Graceful Restart nötig), die Web Admin Console hat Vorrang, und LSCache kann gecachte Responses ohne Header ausliefern.