Die Feature-Policy war ein HTTP-Response-Header, mit dem Websites festlegen konnten, welche Browser-Features sie und eingebettete iframes verwenden dürfen. Sie ist der direkte Vorgänger der heutigen Permissions-Policy und gilt seit etwa 2020 als veraltet.

Was der Header kontrollierte

Wie sein Nachfolger betraf der Header sensible Fähigkeiten des Browsers: Kamera, Mikrofon, Geolocation, Payment-API, Autoplay, Fullscreen, USB, MIDI und weitere. Die Idee war das Least-Privilege-Prinzip: Eine Seite aktiviert nur die Features, die sie wirklich benötigt, und schränkt Dritt-Inhalte wie Werbung oder Widgets ein.

Syntax

Die Allowlist-Werte wurden in Anführungszeichen geschrieben, die heutige Klammer-Syntax gab es noch nicht:

Feature-Policy: camera 'none'; geolocation 'self'; payment 'self' https://example.com
  • 'none' — niemand darf das Feature nutzen, auch die eigene Seite nicht.
  • 'self' — nur die eigene Origin.
  • Explizite Origins — nur die gelisteten Origins.

Warum er abgelöst wurde

Die Spezifikation wurde zu Permissions-Policy weiterentwickelt: Der Name änderte sich, und die Syntax wurde auf Structured Fields umgestellt (camera=(self) statt camera 'self'). Einige Browser interpretieren den alten Header aus Rückwärtskompatibilität noch, die Weiterentwicklung ist jedoch eingestellt. Firefox und Safari unterstützten die Feature-Policy nie vollständig.

Verwandte Grundlagen: Content-Security-Policy, HTTP, HTTPS, Browser, JavaScript-Befehle.