Verificador de Headers de Segurança
Analise os headers de segurança HTTP do seu site. Receba uma nota de A+ a F, veja o que está ausente e obtenha configurações prontas para Nginx e Apache.
Por que Headers de Segurança Importam para Todo Site
Headers de segurança são a melhoria de segurança mais rápida e barata que a maioria dos sites pode fazer. Uma única mudança no nginx.conf ou .htaccess pode adicionar seis ou mais camadas de segurança aplicadas pelo navegador em minutos — sem deploys de código, atualizações de biblioteca ou auditorias de segurança.
Os headers com maior impacto:
- Content-Security-Policy (25 pts): O header mais valioso. Uma CSP estrita elimina classes inteiras de ataques XSS ao criar uma whitelist de quais scripts podem executar e de onde o conteúdo pode ser carregado. Mesmo uma política simples
default-src 'self'bloqueia a maioria dos payloads XSS. - Strict-Transport-Security (15 pts + 5 bônus): Atualiza permanentemente seu site para HTTPS no cache do navegador. A diretiva preload estende isso para todos os navegadores globalmente, eliminando o risco de downgrade HTTP na primeira visita.
- X-Frame-Options + CSP frame-ancestors (10 pts): Previne clickjacking impedindo outros sites de embutir sua página em um iframe e sobrepor elementos de UI invisíveis para roubar cliques.
- X-Content-Type-Options (10 pts): O ganho mais fácil — uma linha impede os navegadores de adivinhar seus tipos de conteúdo declarados, bloqueando ataques de confusão de content-type.
- Referrer-Policy (10 pts): Impede que tokens de sessão, caminhos internos e parâmetros de query sensíveis vazem para sites de terceiros via o header HTTP Referer.
Como interpretar sua nota
A ferramenta atribui uma nota de A+ a F com base em quais headers estão presentes e quão estrita é cada política. Um A+ exige CSP, HSTS estrito com preload, X-Content-Type-Options, frame ancestors, Referrer-Policy e Permissions-Policy. Só a ausência de CSP pode derrubar a nota para C.
- A / A+: postura moderna de defesa em profundidade.
- B / C: essenciais presentes, mas CSP ou HSTS fracos.
- D / F: exposto a clickjacking trivial, MIME-sniffing ou mixed content.
Problemas comuns e soluções
- CSP com
unsafe-inlineeunsafe-eval: anula a proteção XSS — refatore para nonces ou hashes. - HSTS sem
preload: usuários na primeira visita ainda ficam vulneráveis a downgrade; submeta à lista de preload depois de garantir HTTPS em tudo. - X-Frame-Options e frame-ancestors juntos: navegadores modernos honram
frame-ancestorse ignoram X-Frame-Options — mantenha ambos para compatibilidade legada, mas consistentes. - Permissions-Policy ausente: iframes de terceiros podem acessar câmera/geolocalização por padrão; adicione lista de negação explícita.
- Referrer-Policy
unsafe-urlou ausente: vaza URLs completas cross-origin — usestrict-origin-when-cross-origin.
Próximos passos
Faça o rollout do CSP primeiro em modo Content-Security-Policy-Report-Only, colete relatórios de violação por uma semana e só então force a política. Audite cada script de terceiros antes de autorizar a origem.
Para monitoramento contínuo, o FlashMon.app acompanha mudanças automaticamente e avisa no momento em que algo falha.
Monitore headers de segurança continuamente
Receba alertas no momento em que seus headers de segurança mudarem — detecte configurações incorretas antes que se tornem vulnerabilidades.
Perguntas Frequentes
Headers de segurança HTTP são diretivas enviadas pelo seu servidor web nas respostas HTTP que instruem os navegadores sobre como lidar com o conteúdo do seu site. Ao contrário das medidas de segurança no nível da aplicação (validação de entrada, queries parametrizadas), os headers de segurança são aplicados pelo próprio navegador e não exigem alterações de código na sua aplicação. Cada header controla um comportamento específico do navegador: Strict-Transport-Security força HTTPS, Content-Security-Policy restringe de onde scripts podem ser carregados, X-Frame-Options previne embedding, e assim por diante. Juntos, formam uma segunda linha de defesa que reduz o impacto de vulnerabilidades na aplicação.
Uma Content Security Policy é o header de segurança mais impactante. Ela define uma lista de fontes permitidas para cada tipo de recurso que sua página pode carregar: scripts, estilos, imagens, fontes, frames e mais. Uma CSP bem configurada é a mitigação mais eficaz contra ataques XSS (Cross-Site Scripting) — mesmo que um atacante consiga injetar JavaScript malicioso, o navegador se recusará a executá-lo se não vier de uma fonte aprovada. Os erros mais comuns de CSP são usar 'unsafe-inline' (o que anula o propósito principal) e usar 'default-src *' (que permite carregar de qualquer origem). Comece com uma política restritiva e afrouxe apenas quando necessário.
HSTS (HTTP Strict Transport Security) com preload submete seu domínio a uma lista embutida no Chrome, Firefox e Safari. Uma vez no preload, os navegadores recusarão qualquer conexão HTTP ao seu domínio — mesmo na primeira visita — antes de receber um header HSTS. Sem preload, existe uma janela na primeira visita onde um atacante poderia interceptar uma requisição HTTP e fazer downgrade. Atenção: preloading é difícil de desfazer (pode levar meses para remover da lista), todo o domínio e subdomínios devem ser somente HTTPS antes de submeter, e você não pode facilmente reverter se precisar de HTTP no futuro.
Comece pelos headers que dão mais pontos com menor risco de quebra. Em ordem: (1) X-Content-Type-Options: nosniff — seguro para qualquer site, sem configuração adicional. (2) X-Frame-Options: DENY — seguro a menos que você intencionalmente emita seu site em iframes de outros domínios. (3) Referrer-Policy: strict-origin-when-cross-origin — seguro para quase todos os sites. (4) Strict-Transport-Security — seguro se seu site for somente HTTPS; comece com max-age curto e aumente gradualmente. (5) Content-Security-Policy — o mais complexo; comece no modo report-only com Content-Security-Policy-Report-Only para identificar o que quebraria antes de aplicar.
Ambos os headers impedem que sua página seja embutida em iframes, protegendo contra clickjacking. X-Frame-Options é o header mais antigo e simples, com apenas dois valores úteis: DENY (sem framing) e SAMEORIGIN (framing apenas da mesma origem). A diretiva frame-ancestors da CSP é mais poderosa: suporta múltiplas fontes, wildcards e listas de origens específicas. Navegadores modernos suportam ambos, mas quando frame-ancestors da CSP está presente, ele tem precedência sobre X-Frame-Options. A melhor prática é incluir ambos: defina X-Frame-Options: DENY como fallback para navegadores mais antigos, e adicione frame-ancestors 'none' à sua CSP.
A maioria dos headers é segura para adicionar imediatamente: X-Content-Type-Options, X-Frame-Options, Referrer-Policy e HSTS (com max-age curto primeiro) têm risco de quebra virtualmente zero. A Content-Security-Policy é a exceção — uma CSP estrita bloqueará scripts inline, estilos inline e recursos de origens não aprovadas, podendo quebrar sites que dependem disso. Use Content-Security-Policy-Report-Only primeiro: registra violações sem aplicar, permitindo ver o que quebraria sem afetar usuários. Os headers Cross-Origin (COOP, CORP, COEP) também podem quebrar sites que incorporam conteúdo de terceiros — teste cuidadosamente antes de habilitar. O FlashMon pode monitorar seu site continuamente para detectar regressões após implantar novos headers.