X-Frame-Options: o que é e como configurar

O X-Frame-Options protege o seu site contra ataques de clickjacking, impedindo que seja incorporado indevidamente noutras páginas. Neste artigo explicamos o que é, porque importa e como configurá-lo.

O que é o X-Frame-Options

O X-Frame-Options é um cabeçalho HTTP que controla se o seu site pode ser incorporado dentro de um <iframe> noutra página, e em que condições. É uma das defesas mais diretas contra ataques de clickjacking.

Porque é importante

Num ataque de clickjacking, um atacante incorpora o seu site, de forma invisível ou disfarçada, dentro de uma página maliciosa, e induz o visitante a clicar em elementos do seu site sem perceber – por exemplo, um botão de “seguir” numa rede social, ou uma ação sensível numa área de utilizador autenticado. Sem o X-Frame-Options configurado, qualquer página externa pode incorporar o seu site desta forma.

Boas práticas

  • Utilizar a diretiva DENY sempre que o site não precisar de ser incorporado em iframes por ninguém, incluindo pelo próprio domínio.
  • Utilizar SAMEORIGIN quando precisar de incorporar o site em iframes, mas apenas dentro do próprio domínio.
  • Considerar complementar (ou substituir, em navegadores mais recentes) com a diretiva frame-ancestors do Content-Security-Policy, que oferece controlo mais granular sobre que domínios específicos podem incorporar o site.
  • Testar qualquer funcionalidade que dependa de iframes (ex: widgets incorporáveis) após aplicar esta configuração.

Como corrigir

  1. Determine se o seu site precisa de ser incorporado em iframes, e por quem (só pelo próprio domínio, ou também por terceiros de confiança).
  2. Configure o cabeçalho no seu servidor. Se não precisar de permitir iframes de todo:

    X-Frame-Options: DENY
  3. Se precisar de permitir iframes apenas do próprio domínio:

    X-Frame-Options: SAMEORIGIN
  4. Se precisar de permitir domínios específicos de terceiros, utilize a diretiva frame-ancestors do CSP em vez do X-Frame-Options, já que este último não suporta listar múltiplos domínios de forma fiável em todos os navegadores.
  5. Teste o site após a alteração, confirmando que nenhuma funcionalidade legítima baseada em iframes deixou de funcionar.

Definir a diretiva errada pode bloquear iframes legítimos que o seu site precise – ou, na situação oposta, deixar o site desprotegido contra clickjacking. Na WebDig Host, configuramos o X-Frame-Options (e o CSP complementar, quando necessário) de acordo com as necessidades reais do seu site.

Conhecer os serviços de alojamento e gestão de domínios da WebDig Host

Perguntas frequentes sobre o X-Frame-Options

Qual a diferença entre DENY e SAMEORIGIN?

DENY impede que o site seja incorporado em iframes por qualquer página, incluindo páginas do próprio domínio. SAMEORIGIN permite que seja incorporado, mas apenas por páginas do mesmo domínio.

O X-Frame-Options já está obsoleto?

Não está obsoleto, mas a diretiva frame-ancestors do Content-Security-Policy é considerada a forma mais moderna e flexível de controlar isto, sobretudo quando é necessário autorizar domínios específicos de terceiros. É comum configurar ambos, por compatibilidade com navegadores mais antigos.

O meu site precisa mesmo desta proteção?

Praticamente todos os sites beneficiam desta proteção, especialmente aqueles com áreas de login, formulários ou ações sensíveis que um atacante poderia tentar explorar através de clickjacking.

Verifique agora os cabeçalhos de segurança do seu site

Com o Secure Check, pode confirmar gratuitamente se o X-Frame-Options e outros cabeçalhos de segurança do seu domínio estão configurados, em poucos segundos.

Analisar o meu domínio gratuitamente com o Secure Check