Permissions Policy für Netlify konfigurieren
Schritt-für-Schritt-Anleitung: Browser-APIs wie Kamera, Mikrofon und Geolocation auf Netlify einschränken — per _headers oder netlify.toml.
Permissions Policy auf Netlify
Die Permissions Policy (früher Feature-Policy) kontrolliert, welche Browser-APIs Ihre Website nutzen darf. Durch das Sperren nicht benötigter APIs wie Kamera, Mikrofon oder Geolocation reduzieren Sie die Angriffsfläche. Permissions Policy ist mit 10 von 166 Punkten ein relevanter Faktor im Wolf-Agents Web Security Check.
Auf Netlify setzen Sie den Header per netlify.toml oder _headers-Datei. Für pfadspezifische Ausnahmen (z.B. Kamera auf einer Videokonferenz-Seite) nutzen Sie separate Header-Blöcke in der netlify.toml.
Permissions Policy Header setzen
Sperren Sie alle Browser-APIs, die Ihre Website nicht benötigt. Die leere Klammer () bedeutet: Kein Origin darf diese API nutzen — auch nicht Ihre eigene Domain.
# netlify.toml — Permissions Policy
[[headers]]
for = "/*"
[headers.values]
Permissions-Policy = "camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()" # _headers — Permissions Policy
/*
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=() Header verifizieren
Prüfen Sie den Permissions-Policy Header nach dem Deploy. In den Browser DevTools unter Network > Headers sehen Sie den Header für jede Response.
# Permissions-Policy Header prüfen
curl -sI https://ihre-domain.de | grep -i permissions-policy
# Erwartete Ausgabe:
# Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=() Pfadspezifische Ausnahmen
Wenn bestimmte Seiten Browser-APIs benötigen (z.B. Kamera für Videokonferenzen), erstellen Sie separate Header-Blöcke in der netlify.toml. Der spezifischere Pfad hat Vorrang.
# netlify.toml — Permissions Policy mit Ausnahmen
[[headers]]
for = "/*"
[headers.values]
Permissions-Policy = "camera=(), microphone=(), geolocation=(self), payment=(self), usb=()"
# Videokonferenz-Seite mit Kamera/Mikrofon
[[headers]]
for = "/meeting/*"
[headers.values]
Permissions-Policy = "camera=(self), microphone=(self), geolocation=(), payment=()" Bei mehreren [[headers]]-Blöcken in netlify.toml gewinnt der spezifischere Pfad. /meeting/* hat Vorrang vor /* für Requests unter /meeting/.
Häufige Fehler
Veraltete Feature-Policy
Der Header heisst Permissions-Policy, nicht Feature-Policy. Einige ältere Dokumentationen verwenden noch den alten Namen.
Syntax-Fehler
Die Permissions-Policy-Syntax verwendet =() statt ='none'. Falsche Syntax wird von Browsern ignoriert.
Third-Party-Embeds blockiert
Eingebettete iFrames (z.B. Google Maps) benötigen möglicherweise Geolocation. Fügen Sie die Domain explizit hinzu: geolocation=(self "https://maps.google.com").
Compliance-Relevanz
Die Permissions Policy reduziert die Angriffsfläche Ihrer Website. NIS2 fordert technische Maßnahmen zur Minimierung von Cybersicherheitsrisiken. Durch das Sperren nicht benötigter Browser-APIs verhindern Sie, dass kompromittierte Third-Party-Scripts auf sensible Geräte-Features zugreifen. Der Wolf-Agents Web Security Check bewertet die Permissions Policy mit bis zu 10 Punkten.
Wie steht Ihre Domain bei Permissions Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.