HSTS: O Que É e Como Configurar Para Máxima Segurança
O HSTS (HTTP Strict Transport Security) é um header de segurança que instrui o browser a usar apenas HTTPS ao aceder ao seu site — nunca HTTP. Sem HSTS, um atacante numa rede Wi-Fi pública pode interceptar o pedido HTTP inicial (antes do redirecionamento para HTTPS) e executar um ataque man-in-the-middle. Com HSTS, o browser recusa-se a fazer qualquer ligação HTTP ao domínio.
Como funciona
Quando o browser visita o site pela primeira vez via HTTPS, recebe o header HSTS. A partir daí, durante o período definido (max-age), o browser converte automaticamente qualquer pedido HTTP para HTTPS antes de o enviar. Não há janela de vulnerabilidade — o browser nem tenta a ligação HTTP.
Como configurar
Via .htaccess (Apache):
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Parâmetros:
max-age=31536000 — o browser lembra durante 1 ano (em segundos).
includeSubDomains — aplica a todos os subdomínios.
preload — permite incluir o domínio na lista HSTS Preload dos browsers (proteção desde a primeira visita).
HSTS Preload
A lista HSTS Preload é uma lista embebida nos browsers (Chrome, Firefox, Safari, Edge) com domínios que devem usar apenas HTTPS. Mesmo na primeira visita, sem ter visto o header, o browser já sabe que deve usar HTTPS. Submeta o domínio em hstspreload.org — o processo demora algumas semanas.
Cuidados
Antes de activar HSTS, confirme que todo o site funciona correctamente em HTTPS, sem mixed content. Uma vez activado com max-age longo, não pode voltar atrás facilmente — os browsers vão recusar HTTP durante todo o período. Comece com max-age=300 (5 minutos) para testar, depois aumente gradualmente.