HTTP Permissions-Policy display-capture

Typ

Die display-capture-Direktive steuert den Zugriff auf die Screen Capture API für Bildschirm-, Fenster- und Tab-Freigabe.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die getDisplayMedia für Screen Sharing verwenden dürfen.

http
Permissions-Policy: display-capture=(self)
Permissions-Policy: display-capture=(self "https://meet.example.com")
Permissions-Policy: display-capture=()

Direktiven

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

self
Erlaubt Screen-Capture 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 Screen-Capture verwenden dürfen. Für Video-Conferencing-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Video-Conferencing, Remote-Support und Screen-Recording.

Video-Conferencing-App mit Screen Sharing

Eine Video-Meeting-Plattform erlaubt Screen-Capture für Präsentationen und Desktop-Sharing.

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

<!DOCTYPE html>
<html>
<head><title>Video Meeting</title></head>
<body>
  <button id="share">Share Screen</button>
  <script>
    document.getElementById('share').addEventListener('click', async () => {
      const stream = await navigator.mediaDevices.getDisplayMedia({
        video: true,
        audio: true
      });
      // Send stream to peers
    });
  </script>
</body>
</html>

Remote-Support-Platform mit Embedded-Widget

Eine Support-Plattform erlaubt einem Drittanbieter-Widget Screen-Capture für technischen Support.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: display-capture=(self "https://support.remote-help.com")

<!DOCTYPE html>
<html>
<head><title>Customer Portal</title></head>
<body>
  <iframe src="https://support.remote-help.com/widget"
          allow="display-capture"></iframe>
</body>
</html>

REST-API ohne Screen-Capture

Ein API-Endpunkt deaktiviert alle Media-Capture-APIs inklusive Screen Sharing.

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

{
  "status": "success",
  "session_id": "abc123"
}

Vorteile für die Systemarchitektur

  • Verhindert unautorisierten Screen-Capture durch eingebettete Drittanbieter-Inhalte
  • Schützt vor Privacy-Verletzungen durch unerwartete Bildschirmaufnahmen
  • Ermöglicht granulare Kontrolle für Conferencing und Remote-Support
  • Reduziert Sicherheitsrisiken durch Kontrolle über Screen-Sharing-Zugriff

Spezifikation

Definiert in der W3C Screen Capture API Spezifikation. Erfordert HTTPS und explizite Nutzer-Permission per Browser-Dialog mit Auswahl von Screen/Window/Tab.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header