Permissions Policy für Nginx konfigurieren
Schritt-für-Schritt-Anleitung: Permissions Policy auf Nginx einrichten, Browser-APIs wie Kamera und Mikrofon kontrollieren — mit fertiger Konfiguration zum Kopieren.
Permissions Policy auf Nginx
Permissions Policy kontrolliert, welche Browser-APIs auf Ihrer Website verwendet werden dürfen — von Kamera und Mikrofon bis zu Standort und USB-Geräten. Nginx unterstützt den Header nativ über die add_header-Direktive. Verwenden Sie das always-Keyword, damit der Header auch bei Fehlerseiten gesetzt wird. Beachten Sie die location-Vererbung: eigene add_header-Direktiven in einem location-Block überschreiben die Header aus dem server-Block.
Permissions Policy ist mit 10 von 166 Punkten ein Faktor im Wolf-Agents Web Security Check. Die Konfiguration dauert weniger als 5 Minuten.
Permissions-Policy-Header konfigurieren
Fügen Sie den Permissions-Policy-Header in Ihrem HTTPS-Server-Block hinzu. Die empfohlene Konfiguration deaktiviert Kamera, Mikrofon, Standort, Payment und USB und erlaubt Autoplay nur für die eigene Origin. Das always-Keyword stellt sicher, dass der Header auch bei 404- und 500-Fehlerseiten gesetzt wird.
# Permissions Policy — Browser-APIs einschränken
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self)" always; Nginx vererbt add_header-Direktiven aus dem server-Block in location-Blöcke — aber nur, wenn der location-Block keine eigenen add_header-Direktiven enthält. Sobald ein location-Block einen eigenen Header setzt, müssen Sie den Permissions-Policy-Header dort wiederholen.
Konfiguration testen und verifizieren
Prüfen Sie die Nginx-Konfiguration auf Syntaxfehler und laden Sie sie neu. Verifizieren Sie den Header anschließend mit curl und den Browser DevTools (Application > Permissions Policy).
# 1. Konfiguration prüfen und Nginx neu laden
sudo nginx -t && sudo systemctl reload nginx
# 2. Permissions-Policy-Header prüfen
curl -sI https://ihre-domain.de | grep -i permissions
# Erwartete Ausgabe:
# Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self) Wie steht Ihre Domain bei Permissions Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Wo setze ich den Permissions-Policy-Header in Nginx?
Im server- oder http-Block Ihrer Nginx-Konfiguration. Verwenden Sie die add_header-Direktive mit dem always-Keyword, damit der Header auch bei Fehlerseiten (404, 500) gesetzt wird. Bei location-Blöcken beachten Sie: add_header wird dort nur vererbt, wenn im location-Block keine eigenen add_header-Direktiven stehen.
Was passiert ohne das always-Keyword?
Ohne always setzt Nginx den Header nur bei erfolgreichen Responses (2xx/3xx). Fehlerseiten erhalten keinen Permissions-Policy-Header — Angreifer könnten gezielt Fehlerseiten nutzen, um Browser-APIs ohne Einschränkung aufzurufen.
Überschreibt ein location-Block den Permissions-Policy-Header?
Ja, das ist ein häufiger Fehler. Wenn ein location-Block eigene add_header-Direktiven enthält, erbt er keine Header aus dem übergeordneten server-Block. Sie müssen den Permissions-Policy-Header dann in jedem location-Block wiederholen, der eigene add_header-Direktiven hat.
Kann Permissions Policy meine Nginx-Website kaputt machen?
Nur wenn Ihre Website Browser-APIs aktiv nutzt und Sie diese deaktivieren. camera=() blockiert z.B. auch eine eigene Videocall-Funktion. Für Standard-Websites ohne Kamera/Mikrofon-Funktion ist die empfohlene Konfiguration problemlos einsetzbar.
Muss ich Nginx nach der Änderung neu starten?
Ein Reload genügt — nginx -t prüft die Syntax, systemctl reload nginx lädt die Konfiguration ohne Unterbrechung aktiver Verbindungen. Ein vollständiger Neustart ist nicht nötig.