Zum Hauptinhalt springen
Didit erhält 7,5 Mio. $ für die Infrastruktur für Identität und Betrug
Didit
Zurück zum Blog
Blog · 14. März 2026

Sichere Einbettung von iFrames: Best Practices für Webentwickler (DE)

iFrames sind leistungsstarke Werkzeuge zum Einbetten von Inhalten, bergen aber erhebliche Sicherheitsrisiken, wenn sie nicht korrekt gehandhabt werden.

Von DiditAktualisiert
embedded-iframe-security-best-practices.png

iFrames sandkastenVerwenden Sie immer das Attribut sandbox, um die iFrame-Funktionen einzuschränken und zu verhindern, dass nicht vertrauenswürdige Inhalte Skripte ausführen, auf lokalen Speicher zugreifen oder Formulare absenden.

Robuste CSP implementierenNutzen Sie Content Security Policy (CSP)-Header, um zu steuern, welche Ressourcen Ihre Seite laden und ausführen kann, speziell auf iFrames ausgerichtet, um Probleme mit gemischten Inhalten und Skript-Injektionen zu verhindern.

X-Frame-Options & CSP Frame-Ancestors nutzenSchützen Sie Ihre Website vor Clickjacking, indem Sie X-Frame-Options auf DENY oder SAMEORIGIN setzen, und für moderne Browser verwenden Sie die granularere frame-ancestors-Direktive in Ihrer CSP.

Vorsicht bei externen Inhalten walten lassenÜberprüfen Sie alle über iFrames eingebetteten Drittanbieterinhalte gründlich, da Sie implizit deren Sicherheitspraktiken vertrauen. Bevorzugen Sie Lösungen, die starke Sicherheitsgarantien bieten oder serverseitige Verarbeitung ermöglichen.

Das zweischneidige Schwert der iFrames: Komfort vs. Sicherheit

iFrames (Inline Frames) sind ein integraler Bestandteil der modernen Webentwicklung und ermöglichen es Entwicklern, Inhalte von anderen Quellen nahtlos in ihre Webseiten einzubetten. Ob es sich um ein YouTube-Video, ein Zahlungsgateway, ein Social-Media-Widget oder einen Identitätsverifizierungsfluss handelt, iFrames bieten eine unübertroffene Flexibilität. Diese Macht geht jedoch mit einer erheblichen Sicherheitswarnung einher. Ohne entsprechende Vorsichtsmaßnahmen können iFrames zu Vektoren für verschiedene Angriffe werden, einschließlich Clickjacking, Cross-Site Scripting (XSS) und Datenlecks. Da Webanwendungen immer komplexer und stärker vernetzt werden, ist das Verständnis und die Implementierung von iFrame-Sicherheits-Best Practices keine Option mehr; es ist eine Notwendigkeit.

Die Kernherausforderung bei iFrames liegt darin, dass Sie externe Inhalte im Kontext Ihrer eigenen Seite ausführen lassen. Diese externen Inhalte entsprechen möglicherweise nicht den gleichen Sicherheitsstandards wie Ihre Anwendung, oder sie könnten sogar bösartig sein. Daher besteht das Ziel der iFrame-Sicherheit darin, diese eingebetteten Inhalte so weit wie möglich zu isolieren und ihr Potenzial zur Interaktion oder Kompromittierung Ihres übergeordneten Dokuments und der Benutzerdaten zu begrenzen.

Wesentliche iFrame-Sicherheitsmaßnahmen: Sandboxing und CSP

1. Das sandbox-Attribut: Ihre erste Verteidigungslinie

Das HTML5-Attribut sandbox ist wohl die wichtigste Sicherheitsfunktion für iFrames. Es ermöglicht Ihnen, eine strenge Reihe von Beschränkungen auf den Inhalt innerhalb des iFrames anzuwenden und ihn vom Rest Ihrer Seite zu isolieren. Standardmäßig wendet das einfache Hinzufügen des sandbox-Attributs ohne Werte die strengsten Beschränkungen an, indem der iFrame-Inhalt im Wesentlichen als von einem eindeutigen Ursprung stammend behandelt wird und die Ausführung von Skripten, das Absenden von Formularen und der Zugriff auf den lokalen Speicher verhindert werden.

Obwohl hochsicher, kann die Standardsandbox für viele Anwendungsfälle zu restriktiv sein. Sie können Einschränkungen selektiv aufheben, indem Sie bestimmte Schlüsselwörter als Werte für das sandbox-Attribut angeben:

  • allow-forms: Erlaubt das Absenden von Formularen.
  • allow-modals: Erlaubt dem iFrame, modale Fenster zu öffnen (z. B. alert(), confirm(), prompt()).
  • allow-popups: Erlaubt Popups (z. B. window.open()).
  • allow-popups-to-escape-sandbox: Erlaubt sandboxed Dokumenten, neue Fenster zu öffnen, ohne die Sandbox-Beschränkungen zu erben.
  • allow-pointer-lock: Erlaubt die Pointer-Lock-API.
  • allow-same-origin: Erlaubt, dass der iFrame-Inhalt als vom selben Ursprung wie das übergeordnete Dokument behandelt wird, was oft notwendig ist, damit eingebettete Inhalte korrekt funktionieren (z. B. Zugriff auf Cookies, lokalen Speicher). Mit äußerster Vorsicht verwenden.
  • allow-scripts: Erlaubt die Ausführung von JavaScript. Dies ist eine mächtige Berechtigung und sollte nur vertrauenswürdigen Quellen gewährt werden.
  • allow-top-navigation: Erlaubt dem iFrame, den Top-Level-Browsing-Kontext zu navigieren (d. h. die URL des übergeordneten Fensters zu ändern).

Best Practice: Verwenden Sie immer das sandbox-Attribut. Beginnen Sie mit der Standardeinstellung (keine Werte) und fügen Sie nur die minimal notwendigen Berechtigungen hinzu. Wenn Sie beispielsweise ein Zahlungsformular einbetten, benötigen Sie möglicherweise allow-forms allow-scripts, aber Sie möchten definitiv kein allow-same-origin, es sei denn, es ist absolut notwendig und gründlich geprüft.

<iframe src="https://trusted-payment-gateway.com/form" sandbox="allow-forms allow-scripts"></iframe>

2. Content Security Policy (CSP): Steuerung des Inhaltsladens

Content Security Policy (CSP) ist ein leistungsstarker Sicherheitsmechanismus, der dazu beiträgt, verschiedene Arten von Angriffen, einschließlich XSS und Dateninjektion, zu mindern. Durch die Definition einer CSP über einen HTTP-Header (Content-Security-Policy) oder ein <meta>-Tag können Sie angeben, welche Inhaltsquellen vom Browser geladen und ausgeführt werden dürfen.

Für die iFrame-Sicherheit ist CSP in zwei Hauptaspekten entscheidend:

  • Schutz des Elternteils vor dem iFrame: Eine starke CSP auf Ihrer übergeordneten Seite kann verhindern, dass ein ausgenutzter iFrame bösartige Skripte oder Inhalte in Ihre Hauptanwendung lädt.
  • Schutz des iFrames vor dem Elternteil (und umgekehrt): Die Direktive frame-src steuert speziell gültige Quellen für iFrames. Die Direktive frame-ancestors legt fest, welche Ursprünge die aktuelle Ressource (Ihre Seite) in einem iFrame einbetten dürfen, wodurch Clickjacking verhindert wird.

Beispiel CSP-Header:

Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com; frame-src 'self' https://trusted-iframe-source.com; frame-ancestors 'self';

Diese CSP erlaubt Skripte nur von Ihrem eigenen Ursprung und trusted-cdn.com und erlaubt iFrames nur von Ihrem eigenen Ursprung und trusted-iframe-source.com. Entscheidend ist, dass frame-ancestors 'self' sicherstellt, dass Ihre Seite nur von sich selbst eingebettet werden kann, wodurch Clickjacking effektiv verhindert wird.

Schutz vor Clickjacking: X-Frame-Options und frame-ancestors

Clickjacking (UI-Redressing) ist ein Angriff, bei dem eine bösartige Website einen transparenten iFrame Ihrer Website über ihre eigene legt und Benutzer dazu verleitet, auf Elemente Ihrer Website zu klicken, während sie denken, sie interagieren mit der bösartigen Website. Dies kann zu unbefugten Aktionen führen, wie z. B. Käufe tätigen, Einstellungen ändern oder vertrauliche Informationen preisgeben.

1. X-Frame-Options HTTP-Header

Der HTTP-Header X-Frame-Options ist eine traditionelle Methode zur Verhinderung von Clickjacking. Er weist Browser an, ob eine Seite in einem <frame>, <iframe>, <embed> oder <object> gerendert werden darf.

  • X-Frame-Options: DENY: Die Seite kann nicht in einem Frame angezeigt werden, unabhängig von der Website, die dies versucht. Dies ist die sicherste Option.
  • X-Frame-Options: SAMEORIGIN: Die Seite kann nur in einem Frame auf demselben Ursprung wie die Seite selbst angezeigt werden.

Best Practice: Sofern Sie nicht explizit möchten, dass Ihre Seite von anderen Websites eingebettet wird (und wenn ja, verwenden Sie frame-ancestors sorgfältig), setzen Sie X-Frame-Options: DENY für alle Seiten, die sensible Benutzeraktionen verarbeiten.

2. CSP-Direktive frame-ancestors

Die Direktive frame-ancestors innerhalb der Content Security Policy ist eine modernere und flexiblere Alternative zu X-Frame-Options. Sie ermöglicht es Ihnen, mehrere Ursprünge anzugeben, die Ihre Inhalte einbetten dürfen.

Beispiel:

Content-Security-Policy: frame-ancestors 'self' https://partner-site.com;

Dies erlaubt, dass Ihre Seite von sich selbst und von partner-site.com eingebettet wird. Wenn sowohl X-Frame-Options als auch frame-ancestors vorhanden sind, hat frame-ancestors in modernen Browsern im Allgemeinen Vorrang. Es ist eine gute Praxis, beide für eine breitere Browserkompatibilität zu verwenden.

Verantwortungsvoller Datenumgang und Kommunikation

Wenn iFrames mit ihrem übergeordneten Fenster kommunizieren müssen (oder umgekehrt), wird der direkte JavaScript-Zugriff normalerweise durch die Same-Origin Policy blockiert. Die empfohlene sichere Methode für die Cross-Origin-Kommunikation ist window.postMessage().

Sichere Verwendung von window.postMessage()

window.postMessage() ermöglicht Fenstern die sichere Kommunikation über verschiedene Ursprünge hinweg. Es ist jedoch entscheidend, es korrekt zu verwenden, um Schwachstellen zu vermeiden.

  • Überprüfen Sie immer den Ursprung des Absenders: Überprüfen Sie beim Empfang einer Nachricht immer die Eigenschaft event.origin, um sicherzustellen, dass die Nachricht von einer erwarteten Quelle stammt.
  • Geben Sie den Zielursprung an: Geben Sie beim Senden einer Nachricht den genauen Zielursprung an (z. B. iframeWindow.postMessage('hello', 'https://expected-origin.com');) anstelle von '*'. Die Verwendung von '*' bedeutet, dass jedes Fenster Ihre Nachricht potenziell empfangen kann, was ein Sicherheitsrisiko darstellt.
  • Bereinigen Sie empfangene Daten: Behandeln Sie alle über postMessage() empfangenen Daten als nicht vertrauenswürdige Eingabe und bereinigen Sie sie vor der Verwendung, um XSS zu verhindern.

Beispiel (Elternteil sendet an iFrame):

const iframe = document.getElementById('myIframe');
iframe.contentWindow.postMessage('Hallo vom Elternteil!', 'https://trusted-iframe-source.com');

Beispiel (iFrame empfängt vom Elternteil):

window.addEventListener('message', (event) => {
  if (event.origin !== 'https://parent-domain.com') {
    // Nachricht nicht vom erwarteten Ursprung, ignorieren oder protokollieren.
    return;
  }
  console.log('Nachricht vom Elternteil:', event.data);
  // Daten verarbeiten, aber zuerst bereinigen!
});

Wie Didit bei sicheren einbettbaren Workflows hilft

Didit, als All-in-One-Identitätsplattform, verwendet häufig einbettbare Komponenten für seine Identitätsverifizierungsabläufe. Unser Ansatz basiert auf Sicherheit im Kern, da wir die kritische Notwendigkeit einer robusten iFrame- und Workflow-Isolation verstehen. Didit bietet sichere gehostete Verifizierungslinks und Web-SDKs, die nahtlos integriert werden können und dabei höchste Sicherheitsstandards einhalten.

  • Gehostete Verifizierungslinks: Didit generiert sichere, eindeutige URLs für jede Verifizierungssitzung. Diese Links leiten Benutzer zu einer von Didit gehosteten, isolierten Umgebung weiter, wodurch der sensible Verifizierungsprozess vollständig von der Domain Ihrer Anwendung getrennt wird. Dies eliminiert die Notwendigkeit eines komplexen iFrame-Sandboxing auf Ihrer Seite für die Kernverifizierung.
  • Web-SDK mit starker Isolation: Für Szenarien, die eine In-Context-Einbettung erfordern, ist Didits Web-SDK so konzipiert, dass es innerhalb eines sicheren iFrames arbeitet und die strengsten notwendigen sandbox-Attribute nutzt. Wir verwalten die Feinheiten der sicheren Cross-Origin-Kommunikation mithilfe von postMessage(), um sicherzustellen, dass nur notwendige, bereinigte Daten zwischen dem iFrame und Ihrer Anwendung ausgetauscht werden.
  • Compliance und Zertifizierungen: Didit ist SOC 2 Typ II und ISO 27001 zertifiziert und GDPR-konform. Unsere Infrastruktur und Prozesse sind darauf ausgelegt, sensible Identitätsdaten sicher zu verarbeiten, wodurch Ihr Compliance-Aufwand und -Risiko reduziert werden.
  • Minimale Datenexposition: Didits Architektur ist datenschutzfreundlich. Für die biometrische Verifizierung werden Selfies im Speicher verarbeitet und gelöscht, und Ihre Anwendung erhält boolesche Werte (z. B. 'verifiziert'), niemals Rohdaten biometrischer Daten. Dies minimiert die sensiblen Informationen, die innerhalb jeder einbettbaren Komponente verarbeitet werden.

Durch die Verwendung von Didits vorgefertigten, sicheren einbettbaren Lösungen können Unternehmen eine fortschrittliche Identitätsverifizierung integrieren, ohne Experten für iFrame-Sicherheit werden zu müssen, wodurch sie sich auf ihr Kernprodukt konzentrieren können, während sie Benutzervertrauen und Datenschutz gewährleisten.

Bereit zum Start?

Die Absicherung Ihrer iFrames ist ein entscheidender Schritt beim Aufbau einer widerstandsfähigen und vertrauenswürdigen Webanwendung. Durch die gewissenhafte Anwendung von Sandboxing, CSP, X-Frame-Options und sicheren postMessage()-Praktiken können Sie die Leistungsfähigkeit eingebetteter Inhalte nutzen, ohne Ihre Benutzer oder Ihre Anwendung unnötigen Risiken auszusetzen. Entdecken Sie Didits sichere Identitätsverifizierungslösungen, um zu sehen, wie einfach es ist, robuste Sicherheit in Ihre Workflows zu integrieren.

Didit Preise ansehen | Didit Docs erkunden | Eine Demo ausprobieren

Infrastruktur für Identität und Betrugsprävention.

Eine API für KYC, KYB, Transaktionsüberwachung und Wallet-Screening. In 5 Minuten integriert.

Lass dir diese Seite von einer KI zusammenfassen
iFrame-Sicherheit: Best Practices für Webentwickler.