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
DENYsempre que o site não precisar de ser incorporado em iframes por ninguém, incluindo pelo próprio domínio. - Utilizar
SAMEORIGINquando 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-ancestorsdo 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
- 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).
- Configure o cabeçalho no seu servidor. Se não precisar de permitir iframes de todo:
X-Frame-Options: DENY - Se precisar de permitir iframes apenas do próprio domínio:
X-Frame-Options: SAMEORIGIN - Se precisar de permitir domínios específicos de terceiros, utilize a diretiva
frame-ancestorsdo 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. - 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.
