Voltar ao Blog
1 de junio de 2025·9 min de leitura

Headers de Segurança Web: O Guia Completo (CSP, HSTS, X-Frame-Options)

Headers de segurança protegem seu site de XSS, clickjacking e ataques de injeção. Aprenda o que cada header faz e como implementá-los — com verificador gratuito.

Headers HTTP de segurança são um dos aspectos mais negligenciados da segurança de sites. São linhas simples na configuração do servidor que podem prevenir uma ampla gama de ataques — mas a maioria dos sites não os tem configurados. Veja tudo que você precisa saber.

O que são headers de segurança?

Headers de segurança são cabeçalhos de resposta HTTP que instruem os navegadores sobre como lidar com o conteúdo do seu site. Eles indicam ao navegador se deve permitir incorporação em iframes, quais recursos externos confiar e se deve aplicar conexões HTTPS. São definidos no nível do servidor e entram em vigor em cada carregamento de página.

Content-Security-Policy (CSP)

O CSP é o header de segurança mais poderoso — e mais complexo. Ele define quais fontes de conteúdo (scripts, estilos, imagens, fontes) o navegador pode carregar. Um CSP bem configurado é uma das defesas mais eficazes contra Cross-Site Scripting (XSS), consistentemente presente no OWASP Top 10.

  • Bloqueia scripts inline (um vetor comum de XSS) a menos que permitido explicitamente com nonces
  • Impede o carregamento de scripts de domínios não autorizados
  • Pode reportar violações de política para um endpoint especificado para monitoramento
  • Ponto de partida mínimo: Content-Security-Policy: default-src 'self'

Strict-Transport-Security (HSTS)

O HSTS instrui os navegadores a se conectarem ao seu site apenas por HTTPS — mesmo que o usuário digite 'http://' ou clique em um link HTTP. Isso previne ataques de SSL stripping e garante que todas as conexões sejam criptografadas.

  • Valor recomendado: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
  • A diretiva preload permite inclusão nas listas de pré-carregamento HSTS dos navegadores
  • Não ative antes de o site estar completamente em HTTPS — pode impedir fallback para HTTP

X-Frame-Options

O X-Frame-Options impede que seu site seja incorporado em iframes em outros domínios — protegendo contra ataques de clickjacking, onde invasores sobrepõem frames invisíveis para enganar usuários a clicar em conteúdo malicioso.

  • X-Frame-Options: DENY — nunca permita enquadramento por nenhuma página
  • X-Frame-Options: SAMEORIGIN — permita enquadramento apenas pelo mesmo domínio
  • Alternativa moderna: use a diretiva frame-ancestors do CSP para controle mais granular

X-Content-Type-Options

Este header impede que os navegadores façam 'sniffing' do tipo MIME de uma resposta e interpretem arquivos de forma diferente do que o servidor declarou. Sem ele, um navegador pode executar um arquivo carregado como imagem mas contendo JavaScript. Sempre defina: X-Content-Type-Options: nosniff.

Referrer-Policy

Controla quanta informação de referência é incluída quando usuários navegam para fora do seu site. Sem este header, a URL completa (incluindo parâmetros de consulta com IDs de usuário ou tokens) é enviada para sites externos. Recomendado: Referrer-Policy: strict-origin-when-cross-origin.

Permissions-Policy

Anteriormente conhecido como Feature-Policy, este header controla quais recursos do navegador e APIs sua página pode usar — câmera, microfone, geolocalização, pagamento, etc. Restringi-los protege os usuários se seu site for comprometido por um script malicioso de terceiros.

Verifique quais headers de segurança seu site está faltando com o scanner gratuito do Scanlei. Obtenha um relatório detalhado com passos de correção em menos de 60 segundos.

Escaneie seu site grátis

Como adicionar headers de segurança

No Next.js

Adicione uma função headers() ao seu next.config.js ou next.config.ts para aplicar headers de segurança a todas as rotas. Esta é a abordagem recomendada para aplicações Next.js e entra em vigor em cada resposta do servidor.

No Vercel

Adicione um array headers ao vercel.json com padrões de fonte e pares chave-valor de headers. As alterações são implantadas automaticamente no próximo push e se aplicam globalmente ao seu deployment.

Ordem de prioridade de implementação

  • 1. HTTPS em todo lugar + HSTS — fundamental, deve vir primeiro
  • 2. X-Content-Type-Options: nosniff — trivial de adicionar, alto impacto
  • 3. X-Frame-Options — uma linha simples, previne clickjacking
  • 4. Referrer-Policy — fácil, protege a privacidade do usuário contra vazamentos
  • 5. CSP — complexo mas mais poderoso; comece no modo report-only
  • 6. Permissions-Policy — ajuste fino após os outros headers estarem estáveis

Pronto para escanear seu site?

25 créditos grátis. Sem cartão de crédito.