X-Frame-Options
O cabeçalho original contra clickjacking. Um servidor o adiciona à resposta para dizer ao navegador se aquele documento pode ser renderizado dentro de <frame>, <iframe>, <embed> ou <object>.
DENYNunca em frame, nem pelo mesmo site.
SAMEORIGINSó em páginas da mesma origem.
ALLOW-FROM uriObsoleto. Ignorado pelos navegadores modernos — use CSP.
HTTP/2 200
X-Frame-Options: SAMEORIGINContent-Security-Policy: frame-ancestors
O substituto moderno. Aceita uma lista de origens pai permitidas, curingas e esquemas. Quando ambos os cabeçalhos estão presentes, navegadores que suportam frame-ancestors ignoram X-Frame-Options.
Content-Security-Policy: frame-ancestors 'self' https://*.partner.comContent-Security-Policy: frame-ancestors 'none'Atenção à diretiva espelho: frame-src na sua página controla quais URLs você pode incorporar. Se o embed funciona no Iframe Viewer mas não no seu site, verifique primeiro o seu próprio CSP.
Flags de sandbox
Um atributo sandbox vazio remove todas as capacidades. Devolva os tokens um a um.
| Token | Concede |
|---|---|
| allow-scripts | Permite que a página execute JavaScript. |
| allow-same-origin | Mantém a origem da página (cookies, storage). Com scripts, anula o sandbox para conteúdo da mesma origem. |
| allow-forms | Permite envio de formulários. |
| allow-popups | Permite window.open e target=_blank. |
| allow-popups-to-escape-sandbox | Janelas abertas não ficam em sandbox. |
| allow-modals | alert(), confirm(), prompt(), print(). |
| allow-top-navigation | Permite que o frame navegue a sua página. |
| allow-top-navigation-by-user-activation | Navegação do topo só após clique/toque. |
| allow-downloads | Permite downloads iniciados pelo frame. |
| allow-presentation | Presentation API (transmissão). |
| allow-pointer-lock | Pointer Lock API (jogos). |
| allow-orientation-lock | Bloqueio de orientação da tela. |
Permissions Policy (allow)
Enquanto sandbox remove capacidades, allow delega recursos poderosos ao frame. Cada entrada é um nome de recurso, opcionalmente seguido de uma lista de origens.
<iframe
src="https://player.example.com/v/123"
allow="fullscreen; autoplay; picture-in-picture; clipboard-write"
allowfullscreen
></iframe>Quais sites permitem iframe?
O banco que o testador usa. Valores observados — podem mudar sem aviso; confirme com o comando curl antes de publicar.
| Domínio | Iframe | Cabeçalho / alternativa |
|---|---|---|
| google.com | Bloqueado | X-Frame-Options: SAMEORIGINGoogle Maps and YouTube expose dedicated /embed endpoints instead. |
| youtube.com | Bloqueado | X-Frame-Options: SAMEORIGINUse https://www.youtube.com/embed/VIDEO_ID for embedding. |
| facebook.com | Bloqueado | X-Frame-Options: DENYUse the official Facebook Page/Post plugins. |
| instagram.com | Bloqueado | X-Frame-Options: SAMEORIGINUse instagram.com/p/ID/embed/ for public posts. |
| twitter.com | Bloqueado | X-Frame-Options: DENYUse publish.twitter.com to get a widget snippet. |
| x.com | Bloqueado | X-Frame-Options: DENYUse publish.twitter.com to get a widget snippet. |
| linkedin.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| github.com | Bloqueado | X-Frame-Options: DENYGists can be embedded via the script snippet on each gist. |
| amazon.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| netflix.com | Bloqueado | X-Frame-Options: DENY |
| reddit.com | Bloqueado | content-security-policy: frame-ancestors 'self'Use embed.reddit.com for individual posts. |
| stackoverflow.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| paypal.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| apple.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| microsoft.com | Bloqueado | X-Frame-Options: SAMEORIGIN |
| openai.com | Bloqueado | content-security-policy: frame-ancestors 'none' |
| chatgpt.com | Bloqueado | content-security-policy: frame-ancestors 'none' |
| notion.so | Bloqueado | X-Frame-Options: SAMEORIGINPublic pages can be embedded via notion.site links in some tools. |
| figma.com | Bloqueado | X-Frame-Options: SAMEORIGINUse the /embed?embed_host=... URL from Share → Get embed code. |
| wikipedia.org | Permitido | (no framing restriction)Wikipedia allows framing. |
| example.com | Permitido | (no framing restriction) |
| codepen.io | Permitido | (embeds allowed via /embed/ URLs)Use the Embed button on a pen for the canonical snippet. |
| vimeo.com | Bloqueado | X-Frame-Options: SAMEORIGINUse https://player.vimeo.com/video/ID. |
| player.vimeo.com | Permitido | (embed endpoint) |
| open.spotify.com | Bloqueado | X-Frame-Options: SAMEORIGINUse https://open.spotify.com/embed/... URLs. |
| maps.google.com | Bloqueado | X-Frame-Options: SAMEORIGINUse the Share → Embed a map snippet. |
FAQ
Por que o iframe fica em branco ou mostra “recusou a conexão”?
O site enviou um cabeçalho X-Frame-Options (DENY ou SAMEORIGIN) ou um Content-Security-Policy com frame-ancestors que não inclui sua origem. Os navegadores respeitam isso e mostram uma página de erro. O cabeçalho exato aparece em DevTools → Console ou pelo comando curl que o Iframe Viewer fornece.
Como testar se um site pode ser incorporado em iframe?
Cole a URL no testador acima e clique em Renderizar. O Iframe Viewer carrega a página em um iframe real no tamanho de dispositivo escolhido e informa se o carregamento funcionou, qual sinal decidiu o resultado e quanto tempo levou.
O Iframe Viewer consegue ler o cabeçalho X-Frame-Options diretamente?
Não apenas pelo navegador — cabeçalhos de resposta de outra origem ficam ocultos do JavaScript por design. O Iframe Viewer combina verificações determinísticas (conteúdo misto, banco de sites populares), o evento load do navegador e uma sondagem de mesma origem, e sempre informa qual sinal gerou o veredito. Use o comando curl para a verdade definitiva.
O testador diz “Evento load disparado”, mas ainda vejo uma página de erro. Qual está certo?
Ambos. Chrome e Firefox disparam load mesmo ao substituir por uma página de erro, então o evento sozinho não distingue sucesso de bloqueio. Confie nos seus olhos para a decisão final e use o curl para confirmar.
O Iframe Viewer armazena ou registra as URLs que eu testo?
Não. Não existe servidor. Seu histórico fica no localStorage do navegador para sobreviver a recarregamentos e pode ser apagado com um clique. O Analytics, se aceito, conta apenas visualizações e cliques — nunca as URLs testadas.
Qual a diferença entre allow e sandbox?
sandbox remove capacidades (scripts, formulários, popups, navegação) e você devolve só o necessário. allow é a Permissions Policy para recursos poderosos como câmera, tela cheia ou pagamento. Use ambos para conteúdo de terceiros que você não controla.
Por que meu embed funciona aqui, mas não no meu site?
Causas comuns: sua página é HTTPS e o destino é HTTP (conteúdo misto), o destino verifica o cabeçalho Referer, ou o Content-Security-Policy do seu próprio site tem frame-src sem o destino. Experimente a opção de política de referrer em Opções do frame.
O Iframe Viewer é realmente grátis?
Sim — totalmente grátis, sem conta, sem limites. É um site estático sem custos de servidor para recuperar.