X-Frame-Options
Der ursprüngliche Anti-Clickjacking-Header. Ein Server fügt ihn der Antwort hinzu, um dem Browser zu sagen, ob das Dokument in <frame>, <iframe>, <embed> oder <object> gerendert werden darf.
DENYNie einbetten, auch nicht von derselben Seite.
SAMEORIGINNur von Seiten derselben Origin einbetten.
ALLOW-FROM uriVeraltet. Moderne Browser ignorieren es — nutze CSP.
HTTP/2 200
X-Frame-Options: SAMEORIGINContent-Security-Policy: frame-ancestors
Der moderne Ersatz. Unterstützt eine Liste erlaubter Eltern-Origins, Wildcards und Schemata. Sind beide Header vorhanden, ignorieren Browser mit frame-ancestors-Unterstützung X-Frame-Options.
Content-Security-Policy: frame-ancestors 'self' https://*.partner.comContent-Security-Policy: frame-ancestors 'none'Beachte die spiegelbildliche Direktive: frame-src auf deiner Seite bestimmt, welche URLs du einbetten darfst. Funktioniert dein Embed auf Iframe Viewer, aber nicht auf deiner Seite, prüfe zuerst deine eigene CSP.
Sandbox-Flags
Ein leeres sandbox-Attribut entfernt jede Fähigkeit. Gib die Tokens einzeln zurück.
| Token | Erlaubt |
|---|---|
| allow-scripts | Erlaubt der eingebetteten Seite, JavaScript auszuführen. |
| allow-same-origin | Behält die Origin der Seite (Cookies, Storage). Mit Skripten kombiniert hebt das die Sandbox für same-origin-Inhalte auf. |
| allow-forms | Erlaubt das Absenden von Formularen. |
| allow-popups | Erlaubt window.open und target=_blank. |
| allow-popups-to-escape-sandbox | Geöffnete Fenster sind nicht sandboxed. |
| allow-modals | alert(), confirm(), prompt(), print(). |
| allow-top-navigation | Erlaubt dem Frame, deine Seite zu navigieren. |
| allow-top-navigation-by-user-activation | Top-Navigation nur nach Klick/Tipp. |
| allow-downloads | Erlaubt vom Frame ausgelöste Downloads. |
| allow-presentation | Presentation API (Casting). |
| allow-pointer-lock | Pointer Lock API (Spiele). |
| allow-orientation-lock | Sperre der Bildschirmausrichtung. |
Permissions Policy (allow)
Während sandbox Fähigkeiten entfernt, delegiert allow mächtige Features an den Frame. Jeder Eintrag ist ein Feature-Name, optional gefolgt von einer Allowlist.
<iframe
src="https://player.example.com/v/123"
allow="fullscreen; autoplay; picture-in-picture; clipboard-write"
allowfullscreen
></iframe>Welche Seiten erlauben iframes?
Die Datenbank, die der Tester nutzt. Beobachtete Werte — sie können sich ohne Ankündigung ändern; prüfe vor dem Ausliefern mit dem curl-Snippet.
| Domain | Einbetten | Header / Alternative |
|---|---|---|
| google.com | Blockiert | X-Frame-Options: SAMEORIGINGoogle Maps and YouTube expose dedicated /embed endpoints instead. |
| youtube.com | Blockiert | X-Frame-Options: SAMEORIGINUse https://www.youtube.com/embed/VIDEO_ID for embedding. |
| facebook.com | Blockiert | X-Frame-Options: DENYUse the official Facebook Page/Post plugins. |
| instagram.com | Blockiert | X-Frame-Options: SAMEORIGINUse instagram.com/p/ID/embed/ for public posts. |
| twitter.com | Blockiert | X-Frame-Options: DENYUse publish.twitter.com to get a widget snippet. |
| x.com | Blockiert | X-Frame-Options: DENYUse publish.twitter.com to get a widget snippet. |
| linkedin.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| github.com | Blockiert | X-Frame-Options: DENYGists can be embedded via the script snippet on each gist. |
| amazon.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| netflix.com | Blockiert | X-Frame-Options: DENY |
| reddit.com | Blockiert | content-security-policy: frame-ancestors 'self'Use embed.reddit.com for individual posts. |
| stackoverflow.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| paypal.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| apple.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| microsoft.com | Blockiert | X-Frame-Options: SAMEORIGIN |
| openai.com | Blockiert | content-security-policy: frame-ancestors 'none' |
| chatgpt.com | Blockiert | content-security-policy: frame-ancestors 'none' |
| notion.so | Blockiert | X-Frame-Options: SAMEORIGINPublic pages can be embedded via notion.site links in some tools. |
| figma.com | Blockiert | X-Frame-Options: SAMEORIGINUse the /embed?embed_host=... URL from Share → Get embed code. |
| wikipedia.org | Erlaubt | (no framing restriction)Wikipedia allows framing. |
| example.com | Erlaubt | (no framing restriction) |
| codepen.io | Erlaubt | (embeds allowed via /embed/ URLs)Use the Embed button on a pen for the canonical snippet. |
| vimeo.com | Blockiert | X-Frame-Options: SAMEORIGINUse https://player.vimeo.com/video/ID. |
| player.vimeo.com | Erlaubt | (embed endpoint) |
| open.spotify.com | Blockiert | X-Frame-Options: SAMEORIGINUse https://open.spotify.com/embed/... URLs. |
| maps.google.com | Blockiert | X-Frame-Options: SAMEORIGINUse the Share → Embed a map snippet. |
FAQ
Warum bleibt das iframe leer oder zeigt „Verbindung abgelehnt“?
Die Seite hat einen X-Frame-Options-Header (DENY oder SAMEORIGIN) oder eine Content-Security-Policy mit frame-ancestors gesendet, die deine Origin nicht enthält. Browser halten sich daran und zeigen stattdessen eine Fehlerseite. Den genauen Header siehst du in DevTools → Konsole oder per curl-Befehl von Iframe Viewer.
Wie teste ich, ob sich eine Website in ein iframe einbetten lässt?
Füge die URL oben in den iframe-Tester ein und klicke auf Rendern. Iframe Viewer lädt sie in einem echten iframe in der gewählten Gerätegröße und meldet, ob das Laden geklappt hat, welches Signal entschieden hat und wie lange es dauerte.
Kann Iframe Viewer den X-Frame-Options-Header direkt lesen?
Nicht allein aus dem Browser — Cross-Origin-Antwort-Header sind für JavaScript absichtlich unsichtbar. Iframe Viewer kombiniert deterministische Prüfungen (Mixed Content, Datenbank bekannter Seiten), das load-Event des Browsers und eine same-origin-Prüfung und nennt immer das entscheidende Signal. Für die endgültige Wahrheit nutze den curl-Einzeiler.
Der Tester sagt „load-Event ausgelöst“, aber ich sehe eine Fehlerseite. Was stimmt?
Beides. Chrome und Firefox lösen load auch aus, wenn sie eine Fehlerseite einsetzen; das Event allein unterscheidet also nicht zwischen Erfolg und Blockierung. Vertraue für das endgültige Urteil deinen Augen und bestätige mit curl.
Speichert oder protokolliert Iframe Viewer die getesteten URLs?
Nein. Es gibt keinen Server. Dein Verlauf liegt im localStorage des Browsers, überlebt Neuladen und lässt sich mit einem Klick löschen. Analytics zählt — falls akzeptiert — nur Seitenaufrufe und Klicks, niemals die getesteten URLs.
Was ist der Unterschied zwischen allow und sandbox?
sandbox entfernt Fähigkeiten (Skripte, Formulare, Popups, Navigation) und du gibst nur das Nötige zurück. allow ist die Permissions Policy für mächtige Features wie Kamera, Vollbild oder Zahlung. Nutze beides für fremde Inhalte, die du nicht kontrollierst.
Warum funktioniert mein Embed hier, aber nicht auf meiner Seite?
Häufige Ursachen: Deine Seite ist HTTPS, das Ziel HTTP (Mixed Content); das Ziel prüft den Referer-Header; oder die Content-Security-Policy deiner eigenen Seite hat eine frame-src-Direktive ohne das Ziel. Probiere die Referrer-Policy in den Frame-Optionen.
Ist Iframe Viewer wirklich kostenlos?
Ja — komplett kostenlos, ohne Konto, ohne Limits. Es ist eine statische Seite ohne Serverkosten, die gedeckt werden müssten.