Permissions-Policy ist ein HTTP-Response-Header, mit dem eine Website festlegt, welche Browser-Features und APIs sie selbst und eingebettete iframes verwenden dürfen. Dazu gehören sensible Fähigkeiten wie Kamera, Mikrofon, Geolocation, Payment-Request, Autoplay, USB, MIDI oder Fullscreen. Der Header ist der Nachfolger der älteren Feature-Policy und verwendet seit 2020 eine neue Syntax.
Syntax und Allowlists
Permissions-Policy: geolocation=(self), camera=(), microphone=(self "https://example.com")
*: Das Feature ist für alle Origins erlaubt.(self): Nur die eigene Origin darf das Feature nutzen.(): Niemand darf es nutzen — auch die eigene Seite nicht.- Explizite Origins: Nur die gelisteten Origins sind berechtigt.
Warum das wichtig ist
Nach dem Least-Privilege-Prinzip sollte eine Seite nur die Features aktivieren, die sie wirklich braucht. Eingebettete Dritt-Inhalte wie Werbung oder Widgets erben die Policy der Hauptseite und können per iframe-Attribut allow="camera" gezielt erweitert werden. Damit ist Permissions-Policy eine wichtige Verteidigungslinie gegen Missbrauch durch Skript-Injektion und bösartige Dritt-Inhalte — etwa ein Cross-Site-Scripting-Angriff, der heimlich das Mikrofon aktivieren will.
Der Header ist kein Ersatz für die Content-Security-Policy oder die Same-Origin-Policy, sondern ein zusätzliches Element der Verteidigung in der Tiefe, das der Browser konsequent durchsetzt.
Verwandte Grundlagen: JavaScript, HTTP, HTTPS, Referrer-Policy.