Pular para o conteúdo
Segurança Web8 min de leituraAtualizado em 30 de maio de 2026

Content Security Policy e headers de segurança: como reduzir riscos no navegador

Cabeçalhos de segurança são defesa de baixo custo e alto valor. Veja quais aplicar e como evitar quebrar a aplicação.

Cabeçalhos de segurança são uma das defesas de melhor custo-benefício em aplicações web. Eles instruem o navegador a se comportar de forma mais restrita, reduzindo o impacto de classes inteiras de ataque, como XSS, clickjacking e downgrade de conexão. O destaque é a Content Security Policy, ou CSP, que controla de onde o navegador pode carregar recursos e é a defesa em profundidade mais eficaz contra XSS.

Este guia trata dos principais cabeçalhos de segurança de forma defensiva: o que cada um faz, como aplicá-los sem quebrar a aplicação e quais são suas limitações. O foco é ganhar proteção real no navegador, entendendo que cabeçalhos complementam, mas não substituem, a correção da aplicação.

Content Security Policy

A CSP define de onde scripts, estilos, imagens e outros recursos podem ser carregados. Bem configurada, ela limita o impacto de um XSS, porque mesmo que um atacante injete um script, o navegador se recusa a executá-lo se a origem não estiver permitida. O desafio é que uma CSP restrita pode quebrar a aplicação se houver scripts inline ou recursos de terceiros não previstos.

A prática recomendada é começar em modo de report, que apenas registra violações sem bloquear, analisar o que a aplicação realmente carrega e então endurecer a política gradualmente. Evite o uso amplo de permissões inseguras que esvaziam o valor da CSP, e prefira políticas específicas por tipo de recurso.

Os demais cabeçalhos essenciais

Além da CSP, um conjunto de cabeçalhos eleva o piso de segurança com pouco esforço. O HSTS força HTTPS e evita downgrade; X-Content-Type-Options impede que o navegador adivinhe o tipo de conteúdo; X-Frame-Options ou a diretiva equivalente de CSP previne clickjacking; Referrer-Policy controla o vazamento de URL em referências; e Permissions-Policy restringe recursos do navegador como câmera e geolocalização.

  • CSP: controla origens de recursos, mitiga XSS em profundidade
  • HSTS: força HTTPS e evita downgrade de conexão
  • X-Content-Type-Options: impede sniffing de tipo de conteúdo
  • X-Frame-Options ou frame-ancestors: previne clickjacking
  • Referrer-Policy: limita vazamento de URL em referências
  • Permissions-Policy: restringe recursos sensíveis do navegador

Onde aplicar e limitações

Os cabeçalhos podem ser aplicados na aplicação ou na borda, por exemplo no CloudFront ou no Cloudflare, o que facilita padronizar entre vários serviços. Lembre que cabeçalhos são defesa em profundidade: eles reduzem o impacto de falhas, mas não corrigem a falha em si. Uma aplicação vulnerável a XSS continua vulnerável; a CSP apenas dificulta a exploração. Combine cabeçalhos com correção de código e testes.

Checklist prático

  • Definir CSP e iniciar em modo de report
  • Analisar violações e endurecer a CSP gradualmente
  • Evitar permissões inseguras amplas na CSP
  • Habilitar HSTS para forçar HTTPS
  • Aplicar X-Content-Type-Options nosniff
  • Prevenir clickjacking com X-Frame-Options ou frame-ancestors
  • Definir Referrer-Policy adequada
  • Restringir recursos do navegador com Permissions-Policy
  • Aplicar os cabeçalhos na borda para padronizar
  • Tratar cabeçalhos como defesa em profundidade, não correção

Boas práticas

  • Comece a CSP em report e endureça com base em dados reais
  • Padronize cabeçalhos na borda quando possível
  • Evite diretivas inseguras que esvaziam a CSP
  • Combine cabeçalhos com correção da aplicação
  • Revise os cabeçalhos ao adicionar recursos de terceiros
  • Teste o comportamento após cada endurecimento

Erros comuns

  • CSP com permissões inseguras amplas

    A política existe, mas não protege contra XSS na prática.

  • Subir CSP restrita direto, sem report

    Quebra recursos legítimos e a equipe acaba afrouxando tudo.

  • Não habilitar HSTS

    Conexões ficam sujeitas a downgrade para HTTP.

  • Tratar cabeçalhos como correção de vulnerabilidade

    A falha permanece; os cabeçalhos só dificultam a exploração.

  • Cabeçalhos inconsistentes entre serviços

    Alguns endpoints ficam desprotegidos por falta de padronização.

Quando procurar apoio especializado

Definir uma CSP eficaz sem quebrar a aplicação e padronizar cabeçalhos é parte dos serviços de Segurança de Aplicações e de WAF e Proteção de Borda da GUARDIASEC, que avaliam o comportamento no navegador e ajustam a configuração.

Perguntas frequentes

A CSP elimina o risco de XSS?

Não elimina, mas reduz bastante o impacto. A CSP é defesa em profundidade: mesmo que um XSS seja injetado, o navegador se recusa a executar scripts de origens não permitidas, dificultando a exploração. A correção da falha na aplicação continua necessária. A CSP é uma camada poderosa, não um substituto para código seguro.

Por que começar a CSP em modo de report?

Porque uma CSP restrita pode bloquear recursos legítimos que a aplicação carrega, especialmente scripts inline e conteúdo de terceiros. O modo de report registra violações sem bloquear, permitindo mapear o que a aplicação realmente usa antes de endurecer. Subir uma política restrita direto costuma quebrar a aplicação e levar a equipe a afrouxar tudo.

Onde devo aplicar os cabeçalhos de segurança?

Podem ser aplicados na aplicação ou na borda, como CloudFront ou Cloudflare. Aplicar na borda facilita padronizar os cabeçalhos entre vários serviços e garante consistência. O importante é que estejam presentes e uniformes em todas as respostas relevantes, evitando endpoints que ficam de fora e acabam desprotegidos.

Cabeçalhos de segurança substituem o pentest?

Não. Cabeçalhos são defesa em profundidade que reduz o impacto de certas falhas, mas não corrigem vulnerabilidades da aplicação. Um pentest avalia o comportamento real e encontra falhas que os cabeçalhos apenas mitigam. O ideal é combinar cabeçalhos bem configurados com correção de código e testes de segurança regulares.

Próximo passo

Vamos avaliar os riscos do seu ambiente?

Conte seu cenário e definimos juntos o escopo certo. O objetivo é reduzir caminhos prováveis de ataque e elevar a maturidade de segurança, sem promessas absolutas.