iFrame ohne Anmeldedaten: Einfache Einbettung von iFrames in COEP-Umgebungen

Arthur Sonzogni
Arthur Sonzogni

Entwickler, die COEP verwenden, können jetzt iFrames von Drittanbietern einbetten, die COEP selbst nicht verwenden.

Die Funktion „Iframe ohne Anmeldedaten“ ist ab Chrome-Version 110 standardmäßig aktiviert. Damit wird das häufigste Problem von Entwicklern gelöst, die mit der Cross-Origin-Embedder-Policy (COEP) arbeiten: das Einbetten von iFrames von Drittanbietern, für die keine COEP festgelegt ist.

Warum wir COEP benötigen

Einige Web-APIs erhöhen das Risiko von Side-Channel-Angriffen wie Spectre. Um dieses Risiko zu mindern, bieten Browser eine optionale isolierte Umgebung namens ursprungsübergreifende Isolierung, für die COEP bereitgestellt werden muss. Mit der Cross-Origin-Isolierung können Websites privilegierte Funktionen wie SharedArrayBuffer, performance.measureUserAgentSpecificMemory() und hochpräzise Timer mit besserer Auflösung verwenden.

Um die ursprungsübergreifende Isolation zu aktivieren, müssen Websites die folgenden HTTP-Header senden:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

COEP:credentialless kann auch als Alternative zu require-corp verwendet werden. Weitere Informationen finden Sie in der Dokumentation.

Herausforderungen bei der Aktivierung von COEP

Die seitenübergreifende Isolation bietet zwar eine bessere Sicherheit für Webseiten und die Möglichkeit, leistungsstarke Funktionen zu aktivieren, die Bereitstellung von COEP kann jedoch schwierig sein. Eine der größten Herausforderungen besteht darin, dass für alle plattformübergreifenden iframes COEP und CORP bereitgestellt werden müssen. Iframes ohne diese Header werden vom Browser nicht geladen.

IFrame ohne Anmeldedaten als Retter in der Not

Wir führen <iframe credentialless> ein, um das Einbetten von Drittanbieter-Iframes zu ermöglichen, für die kein COEP festgelegt ist. Wenn du dem <iframe>-Element das credentialless-Attribut hinzufügst, wird der Iframe aus einem anderen, leeren Kontext geladen. Insbesondere wird es ohne Cookies geladen. So kann die COEP-Einschränkung aufgehoben werden.

Beispiel:

<iframe credentialless src="https://example.com">

Dieser iFrame wird in einem neuen sitzungsspezifischen Kontext erstellt und hat keinen Zugriff auf die Cookies, die mit der Website der obersten Ebene verknüpft sind. Stattdessen beginnt es mit einem leeren Keksglas. Ebenso laden und speichern Speicher-APIs wie LocalStorage, CacheStorage und IndexedDB Daten in der neuen sitzungsspezifischen Partition. Die Partition ist sowohl auf das aktuelle Dokument der obersten Ebene als auch auf den Ursprung des Iframes beschränkt. Dieser gesamte Speicherplatz wird freigegeben, sobald das Dokument auf oberster Ebene entladen wurde.

Iframes ohne Anmeldedaten unterliegen nicht den COEP-Embedding-Regeln. Sie sind weiterhin sicher: Da sie jedes Mal aus einem neuen leeren Kontext geladen werden, sollten sie keine personalisierten Daten enthalten, nach denen Angreifer suchen. Wenn ein Iframe nur öffentliche Daten enthält, ist er für einen Angreifer nicht wertvoll.

Demo

Hier finden Sie eine Demo eines iframes ohne Anmeldedaten.

FAQ

Wird diese Funktion auch in anderen Browsern übernommen?

Ist ein <iframe> in einem <iframe credentialless> ohne Anmeldedaten verschachtelt?

Ja. Sie wird vererbt. Sobald ein Iframe ohne Anmeldedaten ist, gilt das für alle Iframes im gesamten untergeordneten Knoten, auch ohne credentialless-Attribut.

Sind auch Pop-ups, die über <iframe credentialless> erstellt werden, ohne Anmeldedaten?

Pop-ups werden geöffnet, als wäre noopener festgelegt. Sie werden in einem neuen regulären Kontext auf oberster Ebene erstellt und erfordern Anmeldedaten. Sie können nicht mit dem iframe ohne Anmeldedaten kommunizieren.

Wie kann ich erkennen, dass das Dokument in einen iframe ohne Anmeldedaten eingebettet wurde?

window.credentialless ist in einem iframe ohne Anmeldedaten wahr und andernfalls falsch. In einem Webbrowser, der <iframe credentialless> nicht unterstützt, ist der Wert undefined.

Ressourcen