Permissions Policy: Browser-APIs kontrollieren
Permissions Policy kontrolliert, welche Browser-APIs auf Ihrer Website verwendet werden dürfen. Erfahren Sie, wie Sie Kamera, Mikrofon und Standort einschränken und die Angriffsfläche für Supply-Chain-Angriffe reduzieren.
Warum Permissions Policy?
Permissions Policy ist ein HTTP-Header, der Browser-APIs wie Kamera, Mikrofon und Standort global deaktiviert — selbst kompromittierte Drittanbieter-Scripts können diese APIs dann nicht mehr aufrufen. Supply-Chain-Angriffe auf JavaScript-Libraries stiegen 2022 um 742% laut dem Sonatype State of the Software Supply Chain Report. Ohne Permissions Policy können kompromittierte Scripts unbemerkt auf Kamera, Mikrofon und Standort zugreifen. Der Wolf-Agents Web Security Scanner prüft, ob Ihre Permissions Policy alle sicherheitskritischen Direktiven enthält.
Permissions Policy (ehemals Feature Policy) ist ein HTTP-Header, der Browser-APIs global deaktiviert. Mit camera=() kann kein Script auf der Seite die Kamera aktivieren — unabhängig davon, ob es kompromittiert wurde. Im Juni 2024 zeigte der Polyfill.io Supply-Chain-Angriff auf über 100.000 Websites, wie real diese Bedrohung ist.
Welche Browser-APIs kontrolliert Permissions Policy?
Permissions Policy definiert eine Allowlist pro Browser-API. Der Wert () bedeutet: für niemanden erlaubt. (self) erlaubt nur die eigene Origin. So kontrollieren Sie Hardware-Zugriff, Sensoren, Medien und sicherheitskritische APIs — unabhängig davon, welche Scripts auf Ihrer Seite laufen.
| Direktive | Kontrolliert | Empfehlung |
|---|---|---|
camera | Kamera-Zugriff (getUserMedia) | () oder (self) |
microphone | Mikrofon-Zugriff | () oder (self) |
geolocation | Standort-Abfrage | () |
payment | Payment Request API | () oder (self) |
usb | USB-Geräte-Zugriff | () |
autoplay | Medien-Autoplay | (self) |
display-capture | Bildschirmaufnahme | () |
browsing-topics | Privacy Sandbox Topics API | () |
Syntax-Beispiele
# Empfohlene Konfiguration für Standard-Websites
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self) Permissions Policy in 2 Schritten aktivieren
Permissions Policy ist einer der einfachsten Security Headers: Header setzen, Konfiguration neu laden, fertig. Kein Report-Only-Modus nötig — im Gegensatz zu CSP blockiert eine zu strenge Permissions Policy keine sichtbaren Ressourcen. Prüfen Sie lediglich, welche APIs Ihre Anwendung tatsächlich benötigt.
# /etc/nginx/conf.d/permissions-policy.conf
add_header Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self)" always; # .htaccess
<IfModule mod_headers.c>
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=(), autoplay=(self)"
</IfModule> Detaillierte Nginx-Anleitung · Anleitungen für 7 weitere Stacks verfügbar
Permissions Policy und regulatorische Anforderungen
Permissions Policy ist eine technische Maßnahme, die mehrere regulatorische Anforderungen gleichzeitig adressiert — von NIS2 über die DSGVO bis zum BSI IT-Grundschutz. Der Header ist ein dokumentierbarer Nachweis für Privacy by Design und Angriffsflächen-Reduktion.
NIS2 / §30 BSIG
Maßnahme (e) fordert Systemsicherheit bei Entwicklung und Wartung — Permissions Policy reduziert die Angriffsfläche durch Browser-API-Einschränkung. Die Geschäftsleitung haftet persönlich nach §38 BSIG.
NIS2-Checkliste ansehenDSGVO Art. 25
Privacy by Design: Einschränkung des Zugriffs auf sensible Geräteschnittstellen (Kamera, Mikrofon, Standort) ist eine konkrete technische Umsetzung der Datenminimierung nach Art. 5 Abs. 1 lit. c DSGVO.
BSI IT-Grundschutz
APP.3.1 fordert die Anwendung des Minimalprinzips auf Webanwendungen. Permissions Policy setzt dieses Prinzip auf Browser-API-Ebene um — nicht benötigte APIs werden standardmäßig deaktiviert.
PCI DSS 4.0.1
Req. 6.4.3 fordert seit März 2025 ein Script-Inventar und die Kontrolle aller auf Payment-Seiten ausgeführten Scripts. Permissions Policy ergänzt diese Anforderung durch globale API-Einschränkung auf Browser-Ebene.
Wie steht Ihre Domain bei Permissions Policy?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Was ist Permissions Policy?
Permissions Policy ist ein HTTP-Header, der kontrolliert, welche Browser-APIs (Kamera, Mikrofon, Standort, Zahlung etc.) auf Ihrer Website und in eingebetteten iFrames verwendet werden dürfen. Mit camera=() deaktivieren Sie z.B. den Kamera-Zugriff vollständig — selbst kompromittierte Drittanbieter-Scripts können die API dann nicht mehr aufrufen.
Welche Browser unterstützen den HTTP-Header?
Der Permissions-Policy HTTP-Header wird aktuell nur von Chromium-basierten Browsern unterstützt (Chrome 88+, Edge 88+, Opera). Firefox und Safari unterstützen ausschließlich das iframe-allow-Attribut, nicht den HTTP-Header. Setzen Sie den Header trotzdem — er schützt ca. 70% der Nutzer und Firefox-Support ist in Arbeit.
Kann Permissions Policy meine Website kaputt machen?
Ja, wenn Sie Features blockieren, die Ihre Website aktiv nutzt. camera=() deaktiviert z.B. auch eine eigene Videocall-Funktion. Prüfen Sie vor der Aktivierung, welche APIs Ihre Anwendung benötigt. Für die meisten Standard-Websites ist die empfohlene Konfiguration (camera=(), microphone=(), geolocation=(), payment=()) problemlos einsetzbar.
Was ist der Unterschied zu Feature Policy?
Permissions Policy ist der Nachfolger von Feature Policy. Der Header wurde von Feature-Policy zu Permissions-Policy umbenannt, und die Syntax hat sich geändert: Origins stehen jetzt in Klammern statt in Anführungszeichen, self ohne Quotes, =() statt 'none'. Moderne Browser unterstützen primär Permissions-Policy.
Brauche ich Permissions Policy, wenn ich keine Kamera nutze?
Gerade dann. Wenn Ihre Website keine Kamera, kein Mikrofon und keinen Standort benötigt, sollten Sie diese APIs explizit deaktivieren. Ohne Permissions Policy können kompromittierte Drittanbieter-Scripts diese APIs im Hintergrund aufrufen — z.B. bei einem Supply-Chain-Angriff wie Polyfill.io.
Ist Permissions Policy für NIS2 relevant?
Ja. NIS2 (§30 BSIG) fordert unter Maßnahme (e) die Systemsicherheit bei Entwicklung und Wartung. Permissions Policy reduziert die Angriffsfläche durch API-Einschränkung und ist ein technisch prüfbarer Nachweis. Zusätzlich erfüllt der Header DSGVO Art. 25 (Privacy by Design) durch Einschränkung des Zugriffs auf sensible Geräteschnittstellen.