Ir para o conteúdo principal
Segurança Web na UE: 10 Passos Para uma Melhor Classificação · Part 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.

How does your website compare?

SiteGuardian scans your domain across six security dimensions — free, instant, no registration.

Scan your website

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

This article is part of a weekly series on EU web security best practices.

SiteGuardian

2026-04-13

RSS