Permissions Policy für LiteSpeed konfigurieren

Schritt-für-Schritt-Anleitung: Browser-APIs auf LiteSpeed einschränken — per .htaccess, Web Admin Console oder vhconf.conf. Kamera, Mikrofon und Geolocation sperren.

LiteSpeed · Schritt für Schritt

Permissions Policy auf LiteSpeed

Permissions Policy kontrolliert, welche Browser-APIs Ihre Website und eingebettete Iframes nutzen dürfen. Durch das Sperren ungenutzter APIs wie Kamera, Mikrofon oder Geolocation reduzieren Sie die Angriffsfläche erheblich und verhindern, dass eingebettete Drittanbieter-Inhalte auf sensible Geräte-APIs zugreifen. Der Header ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check bewertet.

LiteSpeed unterstützt die Apache-kompatible mod_headers-Syntax. Sie können den Header per .htaccess (Shared Hosting), über die Web Admin Console (Port 7080, nur LiteSpeed Enterprise) oder direkt in der vhconf.conf (OpenLiteSpeed und Enterprise) setzen. Beachten Sie: Die Web Admin Console hat bei Konflikten Vorrang über .htaccess.

1 Variante 1: .htaccess (Shared Hosting)

Permissions Policy per .htaccess

Die .htaccess-Methode funktioniert auf Shared Hosting und eigenen Servern. Der leere Wert () sperrt die API vollständig — auch für eingebettete Iframes. Für Seiten, die bestimmte APIs benötigen (z.B. Kartenansichten mit Geolocation), verwenden Sie (self) oder erlauben spezifische Domains.

.htaccess Alles sperren
# .htaccess — Permissions Policy auf LiteSpeed
# Alle ungenutzten APIs sperren
<IfModule mod_headers.c>
    Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), magnetometer=(), gyroscope=(), accelerometer=()"
</IfModule>
.htaccess Selektiv
# .htaccess — Selektive Permissions Policy
# Eigene Domain darf Geolocation und Kamera nutzen
<IfModule mod_headers.c>
    Header always set Permissions-Policy "camera=(self), microphone=(), geolocation=(self), payment=(self), usb=(), bluetooth=(), magnetometer=(), gyroscope=(), accelerometer=(), browsing-topics=()"
</IfModule>
2 Variante 2: vhconf.conf / Web Admin Console

Virtual-Host-Konfiguration oder Web Admin Console

Auf eigenen Servern setzen Sie den Header in der vhconf.conf oder über die Web Admin Console (nur LiteSpeed Enterprise). Diese Methode hat Vorrang über .htaccess und ist nicht durch Shared-Hosting-Nutzer überschreibbar.

vhconf.conf Eigener Server
# /usr/local/lsws/conf/vhosts/example/vhconf.conf
# Virtual Host > Context > Header Operations

context / {
  type                    NULL
  location                $DOC_ROOT/

  extraHeaders {
    Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), magnetometer=(), gyroscope=(), accelerometer=()"
  }
}
Web Admin Console LSWS Enterprise
# Web Admin Console (Port 7080) — GUI-Pfad:
# 1. Virtual Hosts > ihre-domain.de > Context
# 2. Type: Static, URI: /
# 3. Header Operations:
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), magnetometer=(), gyroscope=(), accelerometer=()"

# OpenLiteSpeed: KEINE Web Admin Console vorhanden.
# Konfigurieren Sie direkt in vhconf.conf.
# LiteSpeed Enterprise: Web Admin Console ODER vhconf.conf.
OpenLiteSpeed vs. LiteSpeed Enterprise

OpenLiteSpeed (OLS) hat keine Web Admin Console. Konfigurieren Sie Header direkt in /usr/local/lsws/conf/vhosts/<name>/vhconf.conf. LiteSpeed Enterprise (LSWS) bietet zusätzlich die Web Admin Console auf Port 7080. Beide unterstützen die gleiche .htaccess-Syntax.

Verifizierung

Nach dem Graceful Restart prüfen Sie den Permissions-Policy-Header mit curl. Testen Sie auch Fehlerseiten — das always-Keyword stellt sicher, dass der Header auch bei 404/500-Antworten gesendet wird. Der Wolf-Agents Web Security Check verifiziert die Konfiguration automatisch als Teil der 166 Prüfpunkte.

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

# 2. Permissions-Policy Header prüfen
curl -sI https://ihre-domain.de | grep -i permissions-policy

# Erwartete Ausgabe:
# Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), bluetooth=(), magnetometer=(), gyroscope=(), accelerometer=()

# 3. Auch Fehlerseiten prüfen (always-Keyword)
curl -sI https://ihre-domain.de/nicht-vorhanden | grep -i permissions-policy

# 4. Browser DevTools: Application > Permissions Policy prüfen
# Chrome zeigt gesperrte APIs unter Frames > top > Permissions Policy

Häufige Fehler bei Permissions Policy auf LiteSpeed

Diese LiteSpeed-spezifischen Fehler treten bei der Permissions-Policy-Konfiguration am häufigsten auf und führen zu fehlenden oder unwirksamen Headern.

Web Admin Console und .htaccess Konflikt

Die Web Admin Console hat Vorrang über .htaccess. Wenn dort eine andere Permissions Policy gesetzt ist, wird die .htaccess-Direktive ignoriert. Prüfen Sie beide Konfigurationen, bevor Sie einen fehlenden Header debuggen.

.htaccess cached — Änderungen nicht sichtbar

LiteSpeed cached .htaccess-Dateien im Gegensatz zu Apache. Ohne Graceful Restart (/usr/local/lsws/bin/lswsctrl restart) bleibt die alte Policy aktiv. Testen Sie mit einem Timestamp-Trick, um Cache-Probleme auszuschliessen.

Veraltete Syntax: interest-cohort vs. browsing-topics

interest-cohort (FLoC) ist veraltet und wird von Browsern ignoriert. Der aktuelle Feature-Name ist browsing-topics. Prüfen Sie die Permissions-Policy-Spezifikation für aktuelle Feature-Namen, da sich die Liste regelmäßig ändert.

Plesk LiteSpeed-Plugin überschreibt Header

Das Plesk LiteSpeed-Plugin kann Header eigenständig verwalten. Wenn Ihre .htaccess-Permissions-Policy nicht wirkt, prüfen Sie unter Plesk > Apache & nginx-Einstellungen, ob dort ein eigener Header gesetzt ist.

Feature-Policy statt Permissions-Policy verwendet

Feature-Policy ist der veraltete Header-Name. Moderne Browser (Chrome 88+, Firefox 74+) verwenden Permissions-Policy mit geänderter Syntax: camera=() statt camera 'none'. Setzen Sie nur den neuen Header.

Compliance-Relevanz

DSGVO (Artikel 25, Privacy by Design) und die ePrivacy-Verordnung erfordern die Kontrolle von Browser-APIs, die auf personenbezogene Daten zugreifen. Kamera, Mikrofon und Geolocation sind personenbezogene Datenkategorien. NIS2 (Artikel 21) fordert technische Maßnahmen zur Risikominimierung — Permissions Policy reduziert die Angriffsfläche durch das Prinzip der minimalen Berechtigung. BSI IT-Grundschutz (APP.3.1) empfiehlt die Einschränkung ungenutzter Funktionen. Der Wolf-Agents Web Security Check bewertet die Konfiguration mit bis zu 10 Punkten.

Wie steht Ihre Domain bei Permissions Policy?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.

Häufig gestellte Fragen

Welche Browser-APIs sollte ich auf LiteSpeed einschränken?

Mindestens camera=(), microphone=(), geolocation=() und payment=(). Für Websites ohne diese Funktionen schränken Sie zusätzlich usb=(), bluetooth=(), magnetometer=(), gyroscope=() und accelerometer=() ein. Prüfen Sie vor dem Sperren, ob Drittanbieter-Widgets (z.B. Kartenansichten) Geolocation benötigen.

Beeinflusst Permissions Policy die LiteSpeed-Performance?

Nein. Permissions Policy ist ein reiner Response-Header, der vom Browser ausgewertet wird. LiteSpeed sendet den Header nur mit — keine serverseitige Verarbeitung, kein LSCache-Einfluss, kein Performance-Impact.

Kann die Web Admin Console die .htaccess-Permissions-Policy überschreiben?

Ja. Header in der Web Admin Console (Port 7080, nur LiteSpeed Enterprise) haben höchste Priorität. Prüfen Sie Virtual Hosts > Context > Header Operations. Bei OpenLiteSpeed verwenden Sie direkt die vhconf.conf.

Was ist der Unterschied zwischen Permissions-Policy und Feature-Policy?

Feature-Policy ist der veraltete Name. Permissions-Policy ist der aktuelle Standard mit leicht geänderter Syntax: Statt Feature-Policy: camera "none" schreiben Sie Permissions-Policy: camera=(). Ältere LiteSpeed-Anleitungen verwenden möglicherweise noch den alten Header.