HTTP Permissions-Policy camera

Typ

Die camera-Direktive steuert den Zugriff auf die MediaStream Camera API für Video-Aufnahmen über getUserMedia.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die auf Kamera-Hardware zugreifen dürfen.

http
Permissions-Policy: camera=(self)
Permissions-Policy: camera=(self "https://video-chat.com")
Permissions-Policy: camera=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt Kamera-Zugriff nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://conferencing.example.com", die zusätzlich zum Hauptdokument Kamera-Zugriff erhalten. Für Video-Conferencing-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Video-Conferencing, QR-Code-Scanner und AR-Apps.

Video-Conferencing-App mit Kamera

Eine Video-Chat-Anwendung erlaubt Kamera-Zugriff für eigene MediaStream-Verarbeitung.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: camera=(self), microphone=(self)

<!DOCTYPE html>
<html>
<head><title>Video Call</title></head>
<body>
  <video id="preview" autoplay></video>
  <script>
    navigator.mediaDevices.getUserMedia({video: true, audio: true})
      .then(stream => {
        document.getElementById('preview').srcObject = stream;
      });
  </script>
</body>
</html>

E-Commerce mit QR-Code-Scanner-Widget

Eine E-Commerce-Plattform erlaubt einem Drittanbieter-Widget Kamera-Zugriff für QR-Code-Scanning.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: camera=(self "https://scanner.qr-service.com")

<!DOCTYPE html>
<html>
<head><title>Product Search</title></head>
<body>
  <iframe src="https://scanner.qr-service.com/widget"
          allow="camera"></iframe>
</body>
</html>

REST-API ohne Hardware-Zugriff

Ein API-Endpunkt deaktiviert alle Media-Capture-APIs für maximale Sicherheit.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: camera=(), microphone=()

{
  "status": "success",
  "user_profile": {}
}

Vorteile für die Systemarchitektur

  • Verhindert unautorisierten Kamera-Zugriff durch eingebettete Drittanbieter-Inhalte
  • Schützt vor Privacy-Verletzungen durch unerwartete Video-Aufnahmen
  • Ermöglicht granulare Kontrolle für Video-Conferencing und AR-Anwendungen
  • Reduziert Angriffsfläche für Surveillance und Tracking

Spezifikation

Definiert in der W3C Permissions Policy und Media Capture Spezifikation. Erfordert HTTPS und explizite Nutzer-Permission per Browser-Prompt.

Weitere Spezifikationen

Permissions-Policy microphone, Permissions-Policy Header