Tem uma armadilha de falsa segurança muito comum: “meu site tem o cadeado verde (HTTPS), então está seguro”. O HTTPS criptografa o caminho — ninguém lê a senha no meio. Mas ele não diz ao navegador como se comportar dentro da página. E, por padrão, o navegador faz várias coisas perigosas: deixa seu site ser colocado num <iframe> de golpista, “adivinha” o tipo de arquivos, executa scripts de qualquer origem. Cabeçalhos de segurança HTTP são meia dúzia de linhas na config do servidor que fecham essas portas.
Quais cabeçalhos de segurança HTTP realmente importam?
- Strict-Transport-Security (HSTS) — obriga o navegador a só falar com você por HTTPS, mesmo que alguém tente forçar HTTP. Ative só depois que o HTTPS estiver 100% no ar.
- X-Content-Type-Options: nosniff — impede o navegador de “adivinhar” que um arquivo é outra coisa (um
.txtvirar script). Fecha uma classe inteira de ataques. - X-Frame-Options: SAMEORIGIN — proíbe seu site de ser embutido num iframe de terceiros. É o anti-clickjacking (aquele golpe de botão invisível por cima do seu).
- Referrer-Policy — controla quanto da URL atual vaza no header
Refererquando o usuário clica pra fora. Evita vazar caminhos internos e tokens em URL. - Permissions-Policy — desliga APIs do navegador que seu site não usa (câmera, microfone, geolocalização). Se um script malicioso entrar, ele não pede sua webcam.
- Content-Security-Policy (CSP) — a mais poderosa contra XSS: diz exatamente de onde scripts, imagens e estilos podem vir. Tudo que não está na lista, o navegador recusa. É também a que mais dá trabalho de ajustar — por isso a dica de ouro abaixo.
Qual é a regra de ouro para implementar o CSP?
Travar o CSP de uma vez quebra site (some imagem, some script legítimo). O jeito certo: suba primeiro como Content-Security-Policy-Report-Only. Nesse modo ele só reporta o que seria bloqueado, sem bloquear nada. Você acompanha pelo console/relatório, ajusta a política até parar de reclamar do que é legítimo, e só então troca para o Content-Security-Policy de verdade.
Onde configurar cabeçalhos de segurança HTTP?
Depende do seu servidor — e o gerador abaixo cospe os dois prontos:
- Apache (a maioria das hospedagens compartilhadas, incluindo o padrão da Hostinger): vai no
.htaccess, dentro de<IfModule mod_headers.c>. - Nginx: vai no bloco
server { ... }comadd_header ... always;.
Depois de aplicar, teste: jogue seu domínio no securityheaders.com ou no Mozilla Observatory — eles dão uma nota e listam o que falta. A nota sobe na hora.
Marque os cabeçalhos que quer no gerador logo abaixo e leve a configuração pronta pra colar. 👇