Todos os guias
Severidade AltaCabeçalhos de segurança

HTTP Strict Transport Security (HSTS) explicado

HTTP Strict Transport Security (HSTS) é um cabeçalho de resposta que diz aos navegadores para só se conectarem ao seu site por HTTPS. Uma vez visto, o navegador recusa conexões HTTP puras ao seu domínio enquanto durar a política.

O que é

O HSTS é entregue pelo cabeçalho Strict-Transport-Security, por exemplo max-age=31536000; includeSubDomains; preload. O max-age indica por quanto tempo (em segundos) o navegador lembra da regra.

Depois da primeira visita por HTTPS, o navegador atualiza automaticamente toda requisição futura para HTTPS — o usuário não consegue cair por acidente na versão insegura, e um atacante não consegue rebaixar a conexão de volta para HTTP.

Por que importa

Sem HSTS, a primeira requisição que um usuário faz (ao digitar seudominio.com) vai por HTTP puro e pode ser interceptada antes que o seu redirecionamento para HTTPS chegue a acontecer — o clássico ataque de SSL stripping.

Uma política HSTS fraca enfraquece a proteção: um max-age curto reduz a janela em que o HTTPS é exigido, e omitir includeSubDomains deixa todos os subdomínios expostos a downgrade.

Como corrigir

Envie um cabeçalho forte

Use um max-age longo (um ano), cubra os subdomínios e opte pelo preloading.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Verifique primeiro que o HTTPS funciona em tudo

Só adicione includeSubDomains e preload depois que cada subdomínio servir HTTPS válido — caso contrário você pode bloquear o acesso dos usuários a subdomínios que ainda não estão prontos.

Envie para a lista de preload

Quando seu cabeçalho incluir 'preload', cadastre seu domínio em hstspreload.org para que os navegadores exijam HTTPS já na primeira visita.

FAQ

Qual max-age eu devo usar?

No mínimo 15552000 (6 meses); 31536000 (1 ano) é a recomendação comum e o que a lista de preload exige.

O HSTS pode me deixar sem acesso ao meu próprio site?

Só se mais tarde você precisar servir por HTTP ou tiver um subdomínio sem HTTPS. Teste com cuidado antes de habilitar includeSubDomains ou preload.

Seu app está afetado?

O AppSafe verifica isso e dezenas de outros problemas em um único escaneamento grátis.

Escanear meu app grátis