Ir para o conteúdo principal
Segurança Web na UE: 10 Passos Para uma Melhor Classificação · Parte 1

HSTS em 5 Minutos: Porque 72% dos Websites da UE Deixam os Utilizadores Expostos

O HTTP Strict Transport Security impede ataques de downgrade — e está ausente em três de cada quatro websites europeus. Saiba como ativá-lo.

· SiteGuardian

Parte 1 da série "Segurança Web na UE: 10 Passos Para uma Melhor Classificação"


O Problema em 30 Segundos

O seu website tem um certificado TLS. Ótimo. Mas quando um utilizador escreve http://o-seu-dominio.pt — o que acontece?

Sem HSTS: O navegador liga-se sem encriptação. O website redireciona para HTTPS. Mas nos milissegundos entre o pedido HTTP e o redirecionamento, um atacante na mesma rede (Wi-Fi de café, aeroporto, hotel) pode sequestrar a ligação. Man-in-the-middle, roubo de cookies, sequestro de sessão — tudo trivial.

Com HSTS: O navegador já sabe que este domínio apenas aceita HTTPS. Liga-se diretamente com encriptação. Sem pedido HTTP, sem redirecionamento, sem janela de ataque.

Um cabeçalho. Uma linha. E 72,4% dos websites europeus não o têm.


O Que os Dados Mostram

Do SiteGuardian Benchmark com mais de 700 000 websites europeus:

  • 27,6% têm o HSTS ativado
  • 75,7% redirecionam para HTTPS — mas sem HSTS, o redirecionamento é vulnerável a ataques
  • 24,3% nem sequer redirecionam, apesar de terem um certificado válido

Isto significa: três em cada quatro websites com certificado TLS não o utilizam de forma consistente. O certificado existe, a proteção não.


O Que É Exatamente o HSTS?

O HTTP Strict Transport Security (RFC 6797) é um cabeçalho de resposta HTTP que diz ao navegador:

"Liga-te a este domínio durante os próximos X segundos exclusivamente por HTTPS. Ignora o HTTP completamente."

O cabeçalho tem este aspeto:

Strict-Transport-Security: max-age=31536000; includeSubDomains
  • max-age=31536000 — 1 ano (em segundos). O navegador recorda a instrução durante este período.
  • includeSubDomains — aplica-se a todos os subdomínios (api.o-seu-dominio.pt, mail.o-seu-dominio.pt, etc.)

Após a primeira visita, o navegador liga-se diretamente por HTTPS em cada pedido subsequente — sem o desvio pelo HTTP.


Como Ativar o HSTS

Apache (.htaccess ou vhost.conf)

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Pré-requisito: o mod_headers deve estar ativado.

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

O always no final garante que o cabeçalho é enviado mesmo em páginas de erro (4xx, 5xx).

Caddy

O Caddy define o HSTS automaticamente quando o HTTPS está ativo. Não é preciso fazer nada.

Node.js / Express

app.use((req, res, next) => {
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
  next();
});

Ou com o pacote helmet:

const helmet = require('helmet');
app.use(helmet.hsts({ maxAge: 31536000, includeSubDomains: true }));

WordPress

O plugin "Really Simple SSL" ou "HTTP Headers" ativa o HSTS com um único clique. Em alternativa, adicione-o ao .htaccess (ver Apache acima).

Alojamento Gerido (Cloudflare, AWS, Platform.sh, etc.)

A maioria dos fornecedores de alojamento não define o HSTS por defeito. Verifique o painel de controlo em "Definições SSL/TLS" ou "Cabeçalhos HTTP". Se a opção não estiver disponível, crie um ficheiro .htaccess na raiz do website.


Três Erros a Evitar

1. Definir max-age demasiado curto

max-age=86400 (1 dia) apenas protege utilizadores que visitaram o website nas últimas 24 horas. Comece com 30 dias (2592000) e depois aumente para 1 ano (31536000) quando tudo estiver a funcionar.

2. Esquecer o includeSubDomains

Sem includeSubDomains, os seus subdomínios continuam acessíveis por HTTP. Se mail.o-seu-dominio.pt ou intranet.o-seu-dominio.pt não possuem TLS, adicione includeSubDomains apenas quando todos os subdomínios suportarem HTTPS — caso contrário, deixarão de funcionar.

3. Ativar HSTS sem um redirecionamento HTTPS funcional

O HSTS exige que o website esteja efetivamente acessível por HTTPS. Teste antes de ativar: navegue para https://o-seu-dominio.pt. Se surgir um erro, corrija primeiro a configuração do certificado TLS.


HSTS Preload: O Passo Seguinte

Quando o HSTS estiver a funcionar e tiver a certeza de que todos os subdomínios suportam HTTPS, candidate o seu domínio à lista HSTS preload:

  1. Defina o cabeçalho como: max-age=31536000; includeSubDomains; preload
  2. Submeta o seu domínio em: hstspreload.org

A lista preload está integrada no Chrome, Firefox, Safari e Edge. Os domínios na lista são sempre carregados por HTTPS — mesmo na primeira visita, antes de o navegador ter alguma vez visto o cabeçalho HSTS.


A Relação com a NIS2 e o RGPD

O HSTS não é mencionado pelo nome em nenhuma lei. Mas:

  • NIS2, art. 21.o, n.o 2, alínea d) exige "segurança na aquisição, desenvolvimento e manutenção de redes e sistemas de informação, incluindo o tratamento e a divulgação de vulnerabilidades". Um cabeçalho HSTS em falta é uma vulnerabilidade conhecida, trivialmente explorável.

  • RGPD, art. 32.o exige "medidas técnicas adequadas" para proteger dados pessoais. Encriptação de transporte sem HSTS é como uma fechadura sem trinco — parece segura, mas pode ser aberta com um único movimento.


Verifique o Seu Domínio

Ative o HSTS, aguarde 5 minutos e analise o seu domínio:

https://siteguardian.io/scan

A análise mostrará imediatamente se o HSTS está corretamente definido, se o includeSubDomains está ativo e se o seu domínio se qualifica para a lista preload.


Na próxima semana na Parte 2: DMARC — de none a reject. Porque policy=none não protege ninguém, e como alcançar uma política DMARC eficaz em três passos.

Este artigo faz parte da série "Segurança Web na UE: 10 Passos Para uma Melhor Classificação". Dados do SiteGuardian EU Web Security Benchmark com mais de 700 000 websites europeus.

Como se compara o seu site?

O SiteGuardian analisa o seu domínio em seis dimensões de segurança — gratuito, instantâneo, sem registo.

Analisar o seu site

Segurança Web na UE: 10 Passos Para uma Melhor Classificação

Este artigo faz parte de uma série semanal sobre boas práticas de segurança web na UE.

SiteGuardian

2026-04-13

RSS