HSTS (HTTP Strict Transport Security)

Email e Sicurezza
Un'intestazione di sicurezza che forza i browser a connettersi a un sito web solo su HTTPS, prevenendo gli attacchi di downgrade.
← Torna al Glossario

Cos'è HSTS?

HSTS (HTTP Strict Transport Security) è un meccanismo di sicurezza web che dice ai browser di interagire solo con un sito web su HTTPS, mai HTTP. Una volta che un browser vede un intestazione HSTS, si aggiornerà automaticamente tutte le future richieste a HTTPS e si rifiuterà di connettersi su HTTP normale, anche se l'utente specifica esplicitamente http://.

Perché HSTS Matters

Anche con un certificato SSL valido, esistono vulnerabilità:

SSL Stripping Attack

1. Tipo di utente "example.com" (no https://)

2. Attacker intercetta la richiesta HTTP iniziale

3. Processi attaccanti a HTTPS, presenta HTTP all'utente

4. L'utente pensa di essere sicuro, ma l'aggressore vede tutto

HSTS previene questo assicurando che i browser non facciano mai quella richiesta HTTP iniziale.

Vantaggi di HSTS

Sintassi dell'intestazione HSTS

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Direttiva

DirettivaDescrizione
maxageSecondi da ricordare HSTS (31536000 = 1 anno)
includereSubDomainsApplicare HSTS a tutti i sottodomini
precaricoConsenso all'inclusione dell'elenco precarico del browser

Implementazione di HSTS

Nginx #

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

Apache #

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

Cloudflare

Abilita in SSL/TLS → Certificati Edge → HTTP Strict Transport Security

Express.js

const helmet = require('helmet');

app.use(helmet.hsts({

maxAge: 31536000,

includeSubDomains: true,

preload: true

}));

Elenco di precarico HSTS

L'elenco precarico HSTS è un elenco di domini codificati in browser che dovrebbero essere accessibili solo su HTTPS. Questo elimina anche la prima vulnerabilità di richiesta HTTP.

Preload Requisiti

1. Certificato SSL valido

2. Reindirizza tutto HTTP a HTTPS

3. Intestazione HSTS con:

4. Tutti i sottodomini devono supportare HTTPS

Inviare a Preload List

1. Requisiti di verifica Utilizzare hstspreload.org per controllare

2. Dominio pubblico: Inserisci dominio su hstspreload.org

3. Aspetta per l'inclusione. Ci vogliono settimane a mesi per gli aggiornamenti del browser

Avvertenze di precarico

Il carico è permanente (praticamente). La rimozione dalla lista richiede mesi e richiede aggiornamenti del browser. Solo precaricare se siete certi che tutti i sottodomini supportano HTTPS indefinitamente.

Controllo HSTS

Ricercatore DevTools:

1. Apri DevTools → scheda di rete

2. Caricare il sito

3. Controllare intestazioni di risposta per Strict-Transport-Security

# Usando il riccio #

curl -I https://example.com | grep -i strict

# Usando DomScan #

curl "https://domscan.net/v1/health?domain=example.com"

# Reports hasHSTS in security details

Stato di caricamento

Controllare hstspreload.org per vedere se un dominio è precaricato.

Strategia di distribuzione HSTS

Fase 1: Maxaggio corto

Iniziare con una breve max-age per testare:

Strict-Transport-Security: max-age=300
Se qualcosa si rompe, gli utenti memorizzano solo 5 minuti.

Fase 2: Aumenta la durata

Dopo aver confermato HTTPS funziona ovunque:

Strict-Transport-Security: max-age=86400

Fase 3: Aggiungere subdomini

Una volta che tutti i sottodomini supportano HTTPS:

Strict-Transport-Security: max-age=2592000; includeSubDomains

Fase 4: Full Deployment + Preload

Dopo mesi di funzionamento stabile:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Poi si sottopone alla lista di precarico.

Problemi HSTS comuni

Subdomain senza HTTPS: includeSubDomains breaks that subdomain Gli ambienti di sviluppo: HSTS cached from production breaks local dev CDN/Proxy headers: Assicurarsi che l'intestazione HSTS non sia spogliata da intermediari Contenuto misto Tutte le risorse devono essere HTTPS; HSTS non risolve le risorse HTTP incorporate

HSTS è essenziale per qualsiasi sito web che gestisce dati sensibili e fortemente raccomandato per tutti i siti HTTPS.

Metti in Pratica Questa Conoscenza

Usa l'API di DomScan per verificare disponibilità, salute del dominio e altro.