Guias

Como corrigir cabeçalhos de segurança (CSP, HSTS)

A falta de cabeçalhos de segurança expõe as aplicações web a ataques de cross-site scripting (XSS), clickjacking, degradação de protocolo e vazamento de dados de autenticação.

Resposta curta

Implemente Strict-Transport-Security com validade de um ano e preload, configure Content-Security-Policy com restrições firmes, aplique X-Content-Type-Options: nosniff e frame-ancestors 'none'.

Diagnóstico de cabeçalhos de resposta ausentes

Antes de alterar os arquivos de configuração, avalie as respostas atuais utilizando curl -IL ou um scanner de cabeçalhos. Identifique se o encerramento do TLS e o envio dos cabeçalhos ocorrem no servidor de origem (Nginx, Apache), em proxies reversos ou na borda da CDN. Assegure-se de que os cabeçalhos não sejam eliminados por intermediários.

Configuração segura de Strict-Transport-Security (HSTS)

O HSTS determina que os navegadores se conectem exclusivamente por meio de HTTPS, impedindo ataques de interceptação de tráfego. Realize os testes iniciais com max-age=86400 (um dia). Após validar todos os subdomínios e recursos em HTTPS, aplique a diretiva de produção: max-age=31536000; includeSubDomains; preload. Jamais configure max-age=0 em produção.

Estruturação de uma Content Security Policy (CSP) robusta

A CSP delimita com precisão as origens a partir das quais scripts e mídias podem ser processados no navegador. Inicie com o cabeçalho Content-Security-Policy-Report-Only e a diretiva report-to para registrar incidentes sem interromper os usuários. Defina default-src 'self', script-src 'self' com nonces ou hashes em substituição a 'unsafe-inline', restrinja object-src 'none' e aplique frame-ancestors 'none'.

Mitigação de clickjacking, MIME sniffing e vazamento de referrer

Impeça o enquadramento do seu site em iframes camuflados determinando frame-ancestors 'none' na CSP e mantendo X-Frame-Options: DENY para navegadores legados. Evite que arquivos não executáveis sejam interpretados indevidamente com X-Content-Type-Options: nosniff e limite a exposição de dados da URL externa com Referrer-Policy: strict-origin-when-cross-origin.

Implementação no servidor web e validação

No Nginx, insira as diretivas dentro do bloco server HTTPS empregando add_header com o parâmetro always (por exemplo: add_header X-Content-Type-Options "nosniff" always;). No Apache, utilize mod_headers com Header always set. Valide as diretivas com nginx -t, reinicie o serviço e confirme a conformidade em uma auditoria automatizada.

Cabeçalhos de segurança: HTTPS, CSP, proteção de frame, MIME, referenciador e isolamento do navegador.

Iniciar auditoria grátis →

Perguntas

Perguntas frequentes

É seguro habilitar o HSTS preload imediatamente em produção?

Não. Inicie com Strict-Transport-Security: max-age=86400 (um dia) e certifique-se de que todos os subdomínios operam em HTTPS antes de enviar ao hstspreload.org com max-age=31536000.

Como aplicar Content Security Policy sem quebrar scripts essenciais?

Use primeiro Content-Security-Policy-Report-Only para registrar violações, mapeie endpoints necessários e utilize nonces ou hashes para scripts inline antes de impor a política.