Permissions Policy auf Hetzner konfigurieren
Browser-APIs auf Ihrem Hetzner vServer oder Cloud Server kontrollieren — Kamera, Mikrofon und Geolocation gezielt einschränken. Mit restriktiver und permissiver Konfiguration für Nginx und Apache.
Permissions Policy auf Hetzner
Permissions Policy kontrolliert, welche Browser-APIs Ihre Website und eingebettete Drittanbieter-Inhalte (iFrames) nutzen dürfen. Kamera, Mikrofon, Geolocation, Payment und weitere APIs können gezielt deaktiviert oder auf die eigene Domain beschränkt werden. Der Header ist mit 10 von 166 Punkten ein solider Beitrag im Wolf-Agents Web Security Check.
Auf einem Hetzner vServer ist die Konfiguration ein einfacher Einzeiler in der Webserver-Konfiguration. Der Vorteil: Alle APIs, die Ihre Anwendung nicht benötigt, werden serverseitig deaktiviert — selbst wenn ein eingeschleustes Script versucht, auf die Kamera zuzugreifen, blockiert der Browser den Zugriff.
Permissions Policy konfigurieren
Wählen Sie zwischen der restriktiven Variante (alle APIs deaktiviert — empfohlen für die meisten Websites) und der permissiven Variante (ausgewählte APIs für die eigene Domain erlaubt — für Anwendungen, die z.B. Kamera oder Standort benötigen).
# /etc/nginx/conf.d/permissions-policy.conf — Restriktiv (empfohlen)
# Deaktiviert alle sensiblen Browser-APIs
add_header Permissions-Policy
"camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()"
always; # /etc/nginx/conf.d/permissions-policy.conf — Permissiv
# Erlaubt ausgewählte APIs nur für die eigene Domain
add_header Permissions-Policy
"camera=(self), microphone=(self), geolocation=(self), payment=(), fullscreen=(self), autoplay=(self)"
always; # /etc/apache2/conf-available/permissions-policy.conf — Restriktiv
<IfModule mod_headers.c>
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()"
</IfModule> # /etc/apache2/conf-available/permissions-policy.conf — Permissiv
<IfModule mod_headers.c>
Header always set Permissions-Policy "camera=(self), microphone=(self), geolocation=(self), payment=(), fullscreen=(self), autoplay=(self)"
</IfModule> Ein leeres () deaktiviert die API vollständig — auch für die eigene Seite. (self) erlaubt die Nutzung nur für die eigene Origin. Die Syntax ohne Anführungszeichen um self ist korrekt — im Gegensatz zu CSP, wo 'self' mit Anführungszeichen geschrieben wird.
Verifizierung
Testen Sie die Konfiguration und prüfen Sie den Header mit curl. Stellen Sie sicher, dass der Header in der Antwort erscheint und alle gewünschten APIs auflistet.
# Konfiguration testen und Webserver neu laden
sudo nginx -t && sudo systemctl reload nginx
# oder für Apache
sudo a2enconf permissions-policy && sudo apachectl configtest && sudo systemctl reload apache2
# Permissions-Policy Header prüfen
curl -sI https://ihre-domain.de | grep -i permissions-policy Häufige Fehler bei Permissions Policy auf Hetzner
YouTube und Google Maps blockiert
YouTube-Embeds benötigen fullscreen=(self) und autoplay=(self). Google Maps benötigt geolocation=(self). Bei geolocation=() zeigt Maps zwar die Karte, aber die „Mein Standort"-Funktion im Embed funktioniert nicht mehr.
Feature-Policy für Safari
Safari unterstützt Permissions-Policy teilweise erst seit Version 16. Ältere Safari-Versionen verstehen nur den veralteten Feature-Policy-Header. Für maximale Kompatibilität setzen Sie beide Header — das verursacht kein Problem, da Browser unbekannte Header ignorieren.
Nginx add_header Vererbung
Wie bei allen add_header-Direktiven in Nginx: Ein einzelnes add_header in einem location-Block überschreibt alle geerbten Header. Wenn Sie in einem Location-Block andere Header setzen, müssen Sie den Permissions-Policy-Header dort wiederholen.
Compliance-Relevanz
Die Permissions Policy schützt die Privatsphäre von Besuchern, indem sie den Zugriff auf sensible Browser-APIs kontrolliert. Insbesondere Geolocation und Kamera-Zugriff sind datenschutzrelevant.
Wie steht Ihre Domain bei Permissions Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.