Permissions-Policy
Die Permissions-Policy (ehemals Feature-Policy) ist ein HTTP-Header, der steuert, welche Browser-APIs und Features eine Website und ihre eingebetteten Inhalte nutzen dürfen. So können Sie verhindern, dass eingebettete Drittanbieter-iFrames auf Kamera, Mikrofon, Geolokation oder andere sensible Browser-Funktionen zugreifen.
Der Header klingt nach Enterprise-Security? Ist er nicht. Die Konfiguration besteht aus einer einzigen Zeile — und schützt Ihre Besucher vor einem Szenario, das die wenigsten Website-Betreiber auf dem Schirm haben: Drittanbieter-Code, der ungefragt auf Hardware-Features zugreift.
Was passiert ohne Permissions-Policy?
Ohne Permissions-Policy können eingebettete iFrames — Werbenetzwerke, Social-Media-Widgets, externe Chat-Tools — die Browser-APIs uneingeschränkt nutzen.
Das bedeutet: Ein kompromittiertes Werbeskript könnte Kamerazugriff anfordern. Ein manipuliertes Widget könnte die Geolokation auslesen. Klingt unwahrscheinlich? Ist es nicht. Drive-by-Angriffe über kompromittierte Werbenetzwerke (Malvertising) sind ein bekanntes Angriffsmuster — und der Zugriff auf Browser-APIs ohne Permissions-Policy ist technisch trivial.
Mit einer restriktiven Permissions-Policy wird der Zugriff technisch unterbunden. Der Browser blockiert die API-Aufrufe aus iFrames, bevor sie überhaupt ankommen. Keine Ausnahmen. Keine Dialoge. Einfach blockiert.
So funktioniert die Permissions-Policy
Die Policy wird als HTTP-Header gesendet und listet Features mit ihren erlaubten Quellen:
camera=()— Kamera für niemanden erlaubt (auch nicht für die eigene Seite)camera=(self)— Kamera nur für die eigene Domain erlaubtmicrophone=(self)— Mikrofon nur für die eigene Domaingeolocation=(self "maps.example.de")— Geolokation für eigene Domain und eine weitere erlaubte Quellepayment=(self)— Payment Request API nur für die eigene Domain
Welche Features sollten Sie einschränken?
Faustregel: Alles deaktivieren, was Ihre Website nicht braucht.
Die meisten Websites benötigen weder Kamera, noch Mikrofon, noch Geolokation. Eine sinnvolle Standardkonfiguration:
# Apache
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
# Nginx
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
Erweiterte Variante mit weiteren Features:
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()
Rechtlicher Hintergrund
Nach § 25 TDDDG (ehemals TTDSG) erfordert der Zugriff auf Endgeräte-Funktionen eine Einwilligung. Kamera, Mikrofon und Geolokation sind genau solche Endgeräte-Funktionen. Eine restriktive Permissions-Policy verhindert ungewollte Zugriffe technisch — und reduziert damit das Risiko eines Verstoßes gegen das TDDDG.
Permissions-Policy vs. CSP: Was ist der Unterschied?
CSP kontrolliert, von welchen Quellen Inhalte geladen werden dürfen (Skripte, Bilder, Stylesheets). Permissions-Policy kontrolliert, welche Browser-Features genutzt werden dürfen (Kamera, Mikrofon, Geolokation). Beide Header ergänzen sich und sollten gemeinsam eingesetzt werden.
Was prüft exatics?
Unser Audit prüft, ob eine Permissions-Policy gesetzt ist. Das Fehlen wird als Sicherheitshinweis gewertet — insbesondere bei Websites mit eingebetteten Drittanbieter-Inhalten. Wir setzen die Permissions-Policy auf exatics.de selbst ein: camera=(), microphone=(), geolocation=().
Häufige Fragen zu Permissions-Policy
Was ist der Unterschied zwischen CSP und Permissions-Policy?
CSP kontrolliert, von welchen Quellen Inhalte geladen werden dürfen (Skripte, Bilder, Stylesheets). Permissions-Policy kontrolliert, welche Browser-Features genutzt werden dürfen (Kamera, Mikrofon, Geolokation). Beide Header ergänzen sich und sollten gemeinsam eingesetzt werden.
Kann die Permissions-Policy meine Website kaputt machen?
Nur wenn Ihre Website tatsächlich Kamera, Mikrofon oder Geolokation nutzt — und Sie diese Features in der Policy deaktivieren. Die meisten Websites brauchen diese Features nicht. Wenn doch: Erlauben Sie sie gezielt für die eigene Domain mit (self), statt sie komplett zu deaktivieren.
Wie viele Websites setzen die Permissions-Policy ein?
Die Permissions-Policy gehört zu den am seltensten eingesetzten Security Headers. In unseren Audits fehlt sie bei der großen Mehrheit der Websites. Das ist bedauerlich, denn die Einrichtung ist trivial — eine Zeile in der Webserver-Konfiguration.
Verwandte Begriffe
Weiterführende Ratgeber: