DEV Community

Bryan Rafael
Bryan Rafael

Posted on

Clickjacking: o que é e como proteger seu site (pt-BR, com verificação automática)

Clickjacking é o ataque em que um site malicioso carrega a sua página dentro de um iframe transparente e engana o usuário para clicar em botões que ele acha que são dele. Duas defesas existem — e uma delas está saindo de cena.

As duas defesas

Mecanismo Como funciona Situação
X-Frame-Options: DENY / SAMEORIGIN Header: navegador recusa carregar em iframe Legado, ainda suportado
CSP frame-ancestors Diretiva: frame-ancestors 'none' / 'self' / allowlist Moderno e mais flexível

Erros que reprovam

  • X-Frame-Options: ALLOWALL — libera explicitamente o framing (falha direta)
  • CSP com frame-ancestors * — mesma coisa
  • Nenhum dos dois — página fica "apertável"
  • Só XFO quando a página usa widgets de terceiros (empurra você a liberar demais)

Como verificar (passivo)

curl -sI https://seu-site.com | grep -iE "x-frame-options|content-security-policy"
Enter fullscreen mode Exit fullscreen mode

Sem os dois headers (ou com ALLOWALL) a página é frameável. A CLI reconpp marca isso automaticamente com correção sugerida:

pip install git+https://github.com/bryanrafaelbueno/reconpp
reconpp -u https://seu-site.com -f md -o relatorio.md
Enter fullscreen mode Exit fullscreen mode

Saída:

[WARN] headers | Clickjacking (X-Frame-Options / frame-ancestors)
Fix: Adicione 'X-Frame-Options: DENY' ou CSP 'frame-ancestors 'none''.
Enter fullscreen mode Exit fullscreen mode

Recomendação

  • Sistemas novos: só CSP (frame-ancestors 'none')
  • Legados: mantém XFO até ter CSP válido
  • Nunca ALLOWALL; allowlist mínima e documentada se o site realmente precisa ser incorporado

Adividade de segurança completa (70+ pontos) no ebook pt-BR — amostra grátis:

Top comments (0)