WorkerGlobalScope: crossOriginIsolated-Eigenschaft
Hinweis: Diese Funktion ist nur in Web Workers verfügbar.
Die crossOriginIsolated schreibgeschützte Eigenschaft der WorkerGlobalScope-Schnittstelle gibt einen booleschen Wert zurück, der anzeigt, ob das Dokument cross-origin isoliert ist.
Ein cross-origin isoliertes Dokument teilt seine Browsing-Kontext-Gruppe nur mit gleichherkunftlichen Dokumenten in Popups und Navigations sowie Ressourcen (sowohl gleichherkunftliche als auch cross-origin), in deren Nutzung das Dokument via CORS (und COEP für <iframe>) eingewilligt hat.
Die Beziehung zwischen einem cross-origin Öffner des Dokuments oder jeglichen cross-origin Popups, die es öffnet, wird aufgehoben.
Das Dokument kann auch in einem separaten OS-Prozess zusammen mit anderen Dokumenten, mit denen es durch den Betrieb auf gemeinsamem Speicher kommunizieren kann, gehostet werden.
Dies mindert das Risiko von Seitenkanalangriffen und cross-origin Angriffen, die als XS-Leaks bekannt sind.
Cross-origin isolierte Dokumente arbeiten mit weniger Einschränkungen bei der Nutzung folgender APIs:
SharedArrayBufferkann erstellt und über einen Aufruf vonDedicatedWorkerGlobalScope.postMessage()oderMessagePort.postMessage()gesendet werden.Performance.now()bietet bessere Präzision.Performance.measureUserAgentSpecificMemory()kann aufgerufen werden.
Ein Dokument wird cross-origin isoliert sein, wenn es mit einer HTTP-Antwort geliefert wird, die die folgenden Header enthält:
Cross-Origin-Opener-PolicyHeader mit der Direktivesame-origin.Cross-Origin-Embedder-PolicyHeader mit der Direktiverequire-corpodercredentialless.
Zugriff auf die APIs muss auch durch die Permissions-Policy cross-origin-isolated erlaubt werden.
Andernfalls wird die crossOriginIsolated-Eigenschaft false zurückgeben, und das Dokument wird nicht in der Lage sein, die oben aufgeführten APIs mit reduzierten Einschränkungen zu nutzen.
Wert
Ein boolescher Wert.
Beispiele
>Cross-origin Isolierung eines Dokuments
Um ein Dokument cross-origin zu isolieren:
-
Setzen Sie den
Cross-Origin-Opener-PolicyHTTP-Header aufsame-origin:httpCross-Origin-Opener-Policy: same-origin -
Setzen Sie den
Cross-Origin-Embedder-PolicyHTTP-Header aufrequire-corpodercredentialless:httpCross-Origin-Embedder-Policy: require-corp Cross-Origin-Embedder-Policy: credentialless -
Die
cross-origin-isolatedDirektive desPermissions-PolicyHeaders darf den Zugriff auf die Funktion nicht blockieren. Beachten Sie, dass die Standard-Zulassungsliste der Direktiveselfist, sodass die Erlaubnis standardmäßig für cross-origin isolierte Dokumente erteilt wird.
Überprüfen, ob das Dokument cross-origin isoliert ist
const myWorker = new Worker("worker.js");
if (self.crossOriginIsolated) {
const buffer = new SharedArrayBuffer(16);
myWorker.postMessage(buffer);
} else {
const buffer = new ArrayBuffer(16);
myWorker.postMessage(buffer);
}
Spezifikationen
| Specification |
|---|
| HTML> # dom-crossoriginisolated-dev> |
Browser-Kompatibilität
Loading…