HTTP Permissions-Policy cross-origin-isolated

Typ

Die cross-origin-isolated-Direktive aktiviert Cross-Origin-Isolation für Zugriff auf SharedArrayBuffer und präzise Timer.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Cross-Origin-Isolation aktivieren dürfen.

http
Permissions-Policy: cross-origin-isolated=(self)
Permissions-Policy: cross-origin-isolated=(self "https://cdn.com")
Permissions-Policy: cross-origin-isolated=()

Direktiven

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

self
Erlaubt Cross-Origin-Isolation 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://wasm-cdn.example.com", die zusätzlich zum Hauptdokument Isolation aktivieren dürfen. Für WebAssembly-Module.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für WebAssembly-Apps mit SharedArrayBuffer und Multi-Threading.

WebAssembly-App mit SharedArrayBuffer

Eine WebAssembly-Anwendung aktiviert Cross-Origin-Isolation für Multi-Threading mit SharedArrayBuffer.

http
HTTP/1.1 200 OK
Content-Type: text/html
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Permissions-Policy: cross-origin-isolated=(self)

<!DOCTYPE html>
<html>
<head><title>WASM App</title></head>
<body>
  <script>
    const sab = new SharedArrayBuffer(1024);
    const worker = new Worker('/worker.js');
    worker.postMessage({buffer: sab});
  </script>
</body>
</html>

High-Performance Computing mit CDN

Eine Computing-Plattform lädt WebAssembly-Module von einem CDN mit aktivierter Isolation.

http
HTTP/1.1 200 OK
Content-Type: text/html
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
Permissions-Policy: cross-origin-isolated=(self "https://wasm.cdn.example.com")

<!DOCTYPE html>
<html>
<head><title>HPC Platform</title></head>
<body>
  <script src="https://wasm.cdn.example.com/compute.js"></script>
</body>
</html>

Standard-API ohne Isolation

Ein REST-API-Endpunkt deaktiviert Cross-Origin-Isolation für Standard-Anwendungsfälle.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: cross-origin-isolated=()

{
  "status": "success",
  "data": []
}

Vorteile für die Systemarchitektur

  • Ermöglicht High-Performance-Computing mit SharedArrayBuffer in WebAssembly
  • Aktiviert präzise Timer für Performance-Messung und Synchronisation
  • Schützt vor Spectre-artigen Timing-Attacken durch Isolation
  • Unterstützt Multi-Threading für rechenintensive Web-Anwendungen

Spezifikation

Definiert in der W3C Permissions Policy Spezifikation. Erfordert zusätzlich Cross-Origin-Embedder-Policy und Cross-Origin-Opener-Policy Header für Aktivierung.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header