Indice
HSTS
HTTP Strict Transport Security, più comunemente chiamato HSTS, è un meccanismo in grado di migliorare la sicurezza del tuo sito web.
Questa tecnologia serve per evitare il reindirizzamento (downgrade) dalla navigazione su canale sicuro (HTTPS) verso un canale non protetto (HTTP).
Quando una comunicazione viene trasmessa su un canale non cifrato, è possibile che i dati trasmessi vengano compromessi, intercettati o sottratti da individui con fini malevoli. In questi casi possono essere esposte informazioni sensibili come credenziali di accesso, cookie di sessione, token di autenticazione o dati personali inviati tramite form e pannelli di login.
Cerchiamo di capire più nel dettaglio il suo funzionamento e come è possibile implementarlo.
L’HSTS si basa sull’esistenza di un header HTTP chiamato Strict-Transport-Security, inviato direttamente dal server al browser del visitatore. Attraverso questo header il server comunica al browser che il sito dovrà essere raggiunto esclusivamente tramite connessioni HTTPS per un determinato periodo di tempo.
Dopo aver ricevuto questa istruzione, il browser memorizza la policy localmente e, per tutta la durata specificata, impedirà automaticamente qualsiasi tentativo di connessione tramite HTTP. Questo significa che anche se un utente dovesse digitare manualmente un indirizzo HTTP oppure aprire un vecchio link non sicuro, il browser effettuerà automaticamente la conversione verso HTTPS prima ancora di contattare il server.
Questo comportamento permette di ridurre il rischio di attacchi di tipo downgrade o “SSL Stripping”, tecniche utilizzate per forzare una connessione non cifrata tra utente e sito web.
L’header Strict-Transport-Security può assumere differenti valori e parametri, che definiscono il comportamento della policy di sicurezza.
Vediamo di seguito i valori configurabili:
Età (max-age=)
Questo valore serve ad indicare la durata della policy espressa in secondi.
Durante questo intervallo il browser continuerà a forzare automaticamente l’utilizzo del protocollo HTTPS.
In fase di abilitazione dell’header è consigliato impostare inizialmente un valore basso, ad esempio 300 (5 minuti), così da evitare problemi di raggiungibilità in caso di errori di configurazione del certificato SSL o del web server.
Se il sito non manifesta anomalie, è possibile aumentare gradualmente il valore:
604800 → 1 settimana 2592000 → 1 mese 15552000 → 6 mesi 31536000 → 1 anno 63072000 → 2 anni
Una durata elevata aumenta la sicurezza, ma rende anche più difficile annullare rapidamente la policy nel caso di problemi futuri.
Inclusione sottodomini (includeSubDomains)
Questo parametro serve per specificare se la policy HSTS deve essere applicata anche ai sottodomini e non soltanto al dominio principale.
Abilitando questa opzione, anche host come:
mail.dominio.it api.dominio.it cpanel.dominio.it
saranno obbligati a utilizzare esclusivamente HTTPS.
È importante verificare preventivamente che tutti i sottodomini dispongano di certificati validi e configurazioni corrette, altrimenti potrebbero diventare irraggiungibili dai browser moderni.
Precaricamento (preload)
Questo parametro viene utilizzato per richiedere l’inserimento del dominio all’interno delle liste HSTS preload.
Tali liste sono integrate direttamente nei principali browser moderni e consentono di applicare la policy HSTS fin dal primo accesso al sito, senza attendere che il browser riceva l’header dal server.
Questo approccio aumenta ulteriormente la sicurezza perché elimina anche il rischio legato alla prima connessione HTTP iniziale.
Per poter utilizzare il parametro preload è necessario rispettare alcuni requisiti:
- HTTPS obbligatorio su tutto il sito
- Redirect permanente HTTP → HTTPS
- Certificato SSL valido
max-ageimpostato ad almeno31536000- Presenza del parametro
includeSubDomains
Dopo aver configurato correttamente l’header è possibile richiedere l’inserimento del dominio tramite il seguente sito:
https://hstspreload.org/Per impostare l’header HSTS è possibile intervenire con differenti modalità, a seconda del servizio e del web server utilizzato.
Apache o LiteSpeed (.htaccess)
Se si utilizza un web server compatibile con direttive .htaccess, è possibile inserire la seguente configurazione:
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Nginx
In caso di servizi basati su web server Nginx, la direttiva deve essere inserita direttamente nella configurazione del virtual host:
add_header 'Strict-Transport-Security' 'max-age=63072000; includeSubDomains; preload';
Attenzione però ad alcuni pannelli di controllo, come ad esempio Plesk, che utilizzano Nginx come reverse proxy davanti ad Apache. In questi scenari l’header potrebbe dover essere configurato direttamente a livello Nginx per evitare sovrascritture o comportamenti inattesi.
VHosting HSTS Manager (disponibile sui servizi Cloud Hosting con pannello cPanel)
Per i nostri clienti, è possibile aprire il pannello di controllo cPanel e cliccare sulla voce “VHosting – HSTS Manager” nell’area “Sicurezza”.
Tramite pochi clic e senza necessità di essere esperti, potrai implementare l’header HSTS e verificare lo stato del precaricamento.




