Skip to content
IframeViewer

Guide

Pourquoi les iframes sont bloquées — et que faire

Tout ce que Iframe Viewer sait, par écrit. Parcourez les titres ou allez directement au tableau sandbox.

X-Frame-Options

L'en-tête anti-clickjacking d'origine. Un serveur l'ajoute à une réponse pour indiquer au navigateur si ce document peut être affiché dans un <frame>, <iframe>, <embed> ou <object>.

DENY

Jamais intégré, même par le même site.

SAMEORIGIN

Intégré uniquement par des pages de même origine.

ALLOW-FROM uri

Obsolète. Ignoré par les navigateurs modernes — utilisez CSP.

En-tête de réponse
HTTP/2 200
X-Frame-Options: SAMEORIGIN

Content-Security-Policy: frame-ancestors

Le remplaçant moderne. Il accepte une liste d'origines parentes autorisées, des jokers et des schémas. Quand les deux en-têtes sont présents, les navigateurs qui gèrent frame-ancestors ignorent X-Frame-Options.

Autoriser seulement votre site et un partenaire
Content-Security-Policy: frame-ancestors 'self' https://*.partner.com
Bloquer toute intégration
Content-Security-Policy: frame-ancestors 'none'

Notez la directive miroir : frame-src sur votre page contrôle quelles URL vous pouvez intégrer. Si votre intégration fonctionne sur Iframe Viewer mais pas sur votre site, vérifiez d'abord votre propre CSP.

Drapeaux sandbox

Un attribut sandbox vide retire toutes les capacités. Rajoutez les jetons un par un.

JetonAccorde
allow-scriptsAutorise la page intégrée à exécuter du JavaScript.
allow-same-originConserve l'origine de la page (cookies, stockage). Combiné aux scripts, cela annule le sandbox pour le contenu de même origine.
allow-formsAutorise l'envoi de formulaires.
allow-popupsAutorise window.open et target=_blank.
allow-popups-to-escape-sandboxLes fenêtres ouvertes ne sont pas sandboxées.
allow-modalsalert(), confirm(), prompt(), print().
allow-top-navigationAutorise le cadre à naviguer votre page.
allow-top-navigation-by-user-activationNavigation du parent uniquement après un clic/tap.
allow-downloadsAutorise les téléchargements lancés par le cadre.
allow-presentationPresentation API (diffusion).
allow-pointer-lockPointer Lock API (jeux).
allow-orientation-lockVerrouillage de l'orientation de l'écran.

Permissions Policy (allow)

Là où sandbox retire des capacités, allow délègue des fonctions puissantes au cadre. Chaque entrée est un nom de fonction, éventuellement suivi d'une liste d'origines autorisées.

<iframe
  src="https://player.example.com/v/123"
  allow="fullscreen; autoplay; picture-in-picture; clipboard-write"
  allowfullscreen
></iframe>

Quels sites autorisent l'iframe ?

La base utilisée par le testeur. Valeurs observées — elles peuvent changer sans préavis ; confirmez avec la commande curl avant de déployer.

DomaineIntégrationEn-tête / alternative
google.comBloquéX-Frame-Options: SAMEORIGINGoogle Maps and YouTube expose dedicated /embed endpoints instead.
youtube.comBloquéX-Frame-Options: SAMEORIGINUse https://www.youtube.com/embed/VIDEO_ID for embedding.
facebook.comBloquéX-Frame-Options: DENYUse the official Facebook Page/Post plugins.
instagram.comBloquéX-Frame-Options: SAMEORIGINUse instagram.com/p/ID/embed/ for public posts.
twitter.comBloquéX-Frame-Options: DENYUse publish.twitter.com to get a widget snippet.
x.comBloquéX-Frame-Options: DENYUse publish.twitter.com to get a widget snippet.
linkedin.comBloquéX-Frame-Options: SAMEORIGIN
github.comBloquéX-Frame-Options: DENYGists can be embedded via the script snippet on each gist.
amazon.comBloquéX-Frame-Options: SAMEORIGIN
netflix.comBloquéX-Frame-Options: DENY
reddit.comBloquécontent-security-policy: frame-ancestors 'self'Use embed.reddit.com for individual posts.
stackoverflow.comBloquéX-Frame-Options: SAMEORIGIN
paypal.comBloquéX-Frame-Options: SAMEORIGIN
apple.comBloquéX-Frame-Options: SAMEORIGIN
microsoft.comBloquéX-Frame-Options: SAMEORIGIN
openai.comBloquécontent-security-policy: frame-ancestors 'none'
chatgpt.comBloquécontent-security-policy: frame-ancestors 'none'
notion.soBloquéX-Frame-Options: SAMEORIGINPublic pages can be embedded via notion.site links in some tools.
figma.comBloquéX-Frame-Options: SAMEORIGINUse the /embed?embed_host=... URL from Share → Get embed code.
wikipedia.orgAutorisé(no framing restriction)Wikipedia allows framing.
example.comAutorisé(no framing restriction)
codepen.ioAutorisé(embeds allowed via /embed/ URLs)Use the Embed button on a pen for the canonical snippet.
vimeo.comBloquéX-Frame-Options: SAMEORIGINUse https://player.vimeo.com/video/ID.
player.vimeo.comAutorisé(embed endpoint)
open.spotify.comBloquéX-Frame-Options: SAMEORIGINUse https://open.spotify.com/embed/... URLs.
maps.google.comBloquéX-Frame-Options: SAMEORIGINUse the Share → Embed a map snippet.

FAQ

Pourquoi l'iframe est vide ou indique « a refusé la connexion » ?

Le site a envoyé un en-tête X-Frame-Options (DENY ou SAMEORIGIN) ou une Content-Security-Policy avec frame-ancestors qui n'inclut pas votre origine. Les navigateurs le respectent et affichent une page d'erreur. L'en-tête exact est visible dans DevTools → Console ou via la commande curl fournie par Iframe Viewer.

Comment tester si un site peut être intégré dans une iframe ?

Collez l'URL dans le testeur ci-dessus et cliquez sur Afficher. Iframe Viewer la charge dans une vraie iframe à la taille d'appareil choisie et indique si le chargement a réussi, quel signal a décidé du résultat et combien de temps il a pris.

Iframe Viewer peut-il lire directement l'en-tête X-Frame-Options ?

Pas depuis le navigateur seul : les en-têtes de réponse d'une autre origine sont cachés au JavaScript par conception. Iframe Viewer combine des vérifications déterministes (contenu mixte, base de sites populaires), l'événement load du navigateur et un sondage de même origine, et indique toujours quel signal a produit le verdict. Utilisez la commande curl pour la vérité absolue.

Le testeur dit « Événement load déclenché » mais je vois une page d'erreur. Qui a raison ?

Les deux. Chrome et Firefox déclenchent load même en substituant une page d'erreur ; l'événement seul ne distingue donc pas succès et blocage. Fiez-vous à vos yeux pour la décision finale et confirmez avec curl.

Iframe Viewer stocke-t-il ou enregistre-t-il les URL que je teste ?

Non. Il n'y a pas de serveur. Votre historique est enregistré dans le localStorage du navigateur pour survivre aux rechargements et s'efface en un clic. Les statistiques, si vous les acceptez, ne comptent que les pages vues et les clics — jamais les URL testées.

Quelle différence entre allow et sandbox ?

sandbox retire des capacités (scripts, formulaires, popups, navigation) et vous ne réactivez que le nécessaire. allow est la Permissions Policy pour les fonctions puissantes comme la caméra, le plein écran ou le paiement. Utilisez les deux pour du contenu tiers que vous ne contrôlez pas.

Pourquoi mon intégration fonctionne ici mais pas sur mon site ?

Causes fréquentes : votre page est en HTTPS et la cible en HTTP (contenu mixte), la cible vérifie l'en-tête Referer, ou la Content-Security-Policy de votre propre site a une directive frame-src sans la cible. Essayez l'option de politique de referrer dans les Options du cadre.

Iframe Viewer est-il vraiment gratuit ?

Oui — totalement gratuit, sans compte, sans limite. C'est un site statique sans coûts de serveur à récupérer.