WorkerGlobalScope: crossOriginIsolated-Eigenschaft
Hinweis: Diese Funktion ist nur in Web Workers verfügbar.
Die crossOriginIsolated
schreibgeschützte Eigenschaft des WorkerGlobalScope
-Interfaces gibt einen boolean-Wert zurück, der angibt, ob das Dokument herkunftsisoliert ist.
Ein herkunftsisoliertes Dokument teilt seine Browsing-Kontext-Gruppe nur mit gleichherkunftlichen Dokumenten in Popups und Navigationen sowie mit Ressourcen (sowohl gleichherkunftlich als auch kreuzherkunftlich), für deren Nutzung das Dokument sich mittels CORS (und COEP für <iframe>
) entschieden hat. Die Beziehung zwischen einem kreuzherkunftlichen Eröffner des Dokuments oder jeglichen kreuzherkunftlichen Popups, die es öffnet, wird getrennt. Das Dokument kann auch in einem separaten Betriebssystemprozess zusammen mit anderen Dokumenten gehostet werden, mit denen es über den gemeinsamen Speicher kommunizieren kann. Dies verringert das Risiko von Seitenkanalangriffen und kreuzherkunftlichen Angriffen, die als XS-Leaks bezeichnet werden.
Herkunftsisolierte Dokumente arbeiten mit weniger Einschränkungen bei der Verwendung der folgenden APIs:
SharedArrayBuffer
kann erstellt und über einen Aufruf vonDedicatedWorkerGlobalScope.postMessage()
oderMessagePort.postMessage()
gesendet werden.Performance.now()
bietet eine bessere Präzision.Performance.measureUserAgentSpecificMemory()
kann aufgerufen werden.
Ein Dokument wird herkunftsisoliert sein, wenn es mit einer HTTP-Antwort zurückgegeben wird, die die Header enthält:
Cross-Origin-Opener-Policy
Header mit der Direktivesame-origin
.Cross-Origin-Embedder-Policy
Header mit der Direktiverequire-corp
odercredentialless
.
Der Zugriff auf die APIs muss auch durch die Permissions-Policy
cross-origin-isolated
ermöglicht werden. Andernfalls wird die crossOriginIsolated
-Eigenschaft false
zurückgeben, und das Dokument wird nicht in der Lage sein, die oben genannten APIs mit reduzierten Einschränkungen zu verwenden.
Wert
Ein boolean-Wert.
Beispiele
Ein dokument herkunftsisolieren
Um ein Dokument herkunftsisoliert zu machen:
-
Setzen Sie den
Cross-Origin-Opener-Policy
HTTP-Header aufsame-origin
:httpCross-Origin-Opener-Policy: same-origin
-
Setzen Sie den
Cross-Origin-Embedder-Policy
HTTP-Header aufrequire-corp
odercredentialless
:httpCross-Origin-Embedder-Policy: require-corp Cross-Origin-Embedder-Policy: credentialless
-
Die
cross-origin-isolated
Direktive desPermissions-Policy
Headers darf den Zugriff auf die Funktion nicht blockieren. Beachten Sie, dass die Standard-Zugriffsliste der Direktiveself
ist, sodass die Erlaubnis standardmäßig herkunftsisolierten Dokumenten erteilt wird.
Überprüfen, ob das Dokument herkunftsisoliert 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 Standard # dom-crossoriginisolated-dev |
Browser-Kompatibilität
BCD tables only load in the browser