Resumo
X-Frame-Options: SAMEORIGINpermitia a uma página recusar ser colocada em molduras de outros sites. O RFC de 2013 registrou uma falha de inspeção: certas implementações comparavam a página protegida apenas com a janela principal.- Uma página A contém B, que contém uma página protegida de A. A verificação das pontas encontra A e A e deixa B no meio sem exame. A diretiva
frame-ancestorsdo W3C passou a exigir em 2016 a inspeção de todos os ancestrais.
A moldura que ficou no meio
Uma página azul do site A incorpora uma página vermelha do site B. B, por sua vez, tenta incorporar uma página sensível de A. Essa página responde com X-Frame-Options: SAMEORIGIN, pedindo ao navegador que permita molduras da mesma origem. Se o programa comparar a página sensível apenas com a janela exterior, ele encontra A dos dois lados e libera o carregamento. A página de B, imediatamente ao redor do conteúdo sensível, não entra na conta.
O RFC 7034, publicado em outubro de 2013, descreveu esse arranjo. É um documento Informational sobre a prática e as divergências de implementação daquele momento. O problema que o cabeçalho tentava conter era o clickjacking: uma página pode sobrepor outra e induzir um clique em um botão que a pessoa não percebe estar acionando. A loja e a confirmação de compra do RFC são exemplos didáticos de defesa. A sequência A/B/A mostra um mecanismo, sem medir vítimas ou relatar uma loja atacada.
O site ditava a regra; o navegador escolhia onde olhar
O servidor da página protegida enviava a política na resposta HTTP. DENY proibia qualquer moldura; SAMEORIGIN aceitava a mesma origem; ALLOW-FROM indicava uma origem permitida. Cabia ao navegador executar a instrução. Com apenas duas páginas, a divisão parece suficiente. Quando uma página se encaixa dentro de outra e depois de mais outra, o sentido prático da regra depende de quais camadas são examinadas.
O RFC relatou comportamentos diferentes entre navegadores. Alguns conferiam a origem da página protegida contra a da janela no topo e ignoravam a intermediária. O dono do conteúdo havia enviado a condição certa. A checagem não percorria toda a árvore. Comparar o começo e o fim de um corredor não mostra quem controla sua passagem central.
Uma regra para cada ancestral
A Recomendação Content Security Policy Level 2 do W3C, de dezembro de 2016, definiu frame-ancestors. Antes de carregar a página protegida em uma moldura, o navegador lista todos os contextos ancestrais e confronta cada URL com as origens autorizadas. Qualquer incompatibilidade interrompe o carregamento. Em A/B/A, B reprova. O fato de a janela externa ser A não apaga o intermediário.
O texto do W3C contrapôs expressamente essa inspeção completa à comparação apenas com a janela superior feita por muitas implementações de SAMEORIGIN. Também disse que frame-ancestors substituía X-Frame-Options e deveria prevalecer quando as duas políticas fossem enviadas. A nova diretiva permitia mais de uma origem autorizada, ao contrário do antigo ALLOW-FROM. A mudança decisiva, porém, foi perguntar por todos os pais.
Até uma política bem formulada precisa chegar no lugar certo. O RFC dizia que navegadores ignoravam X-Frame-Options escrito em meta http-equiv; a instrução devia ser um cabeçalho HTTP. O W3C também excluiu frame-ancestors de políticas entregues por elemento meta. E uma regra geral default-src 'none' não cria automaticamente uma proibição de enquadramento. O operador precisa declarar a fronteira no canal que o navegador aplica.
O servidor pode escrever quem tem permissão para cercar sua página. Só o navegador do visitante vê a pilha real de molduras. A promessa se torna proteção quando a inspeção alcança cada camada da pilha.
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Exclusivo para o Círculo Estratégico
Círculo Estratégico
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Círculo EstratégicoSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance





