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.