HSTS – Come usare HTTP Strict Transport Security
È molto importante garantire la sicurezza del tuo sito, soprattutto quando si tratta di proteggersi dagli hacker. Ci sono molte misure da adottare e best practice da seguire per garantire che l’accesso al tuo sito sia bloccato. Se il tuo sito gira su HTTPS, allora una delle misure che ti consigliamo di implementare è l’header di sicurezza HSTS, in quanto può aiutarti a prevenire gli attacchi man-in-the-middle (MitM) e il cookie hijacking.
Tabella dei contenuti
Cos’è l’HSTS (Strict Transport Security)?
HSTS sta per HTTP Strict Transport Security ed è stato definito dall’IETF nella RFC 6797 nel 2012. È stato creato come soluzione per forzare il browser a utilizzare connessioni sicure quando un sito è in esecuzione su HTTPS. Si tratta di un header di sicurezza che si aggiunge al server web e si riflette nell’header di risposta come Strict-Transport-Security. HSTS è importante perché indirizza le seguenti anomalie:
- Qualsiasi tentativo da parte dei visitatori di utilizzare la versione non sicura (HTTP://) di una pagina del tuo sito sarà automaticamente inoltrata alla versione sicura (HTTPS://).
- I vecchi preferiti HTTP salvati nei vari browser e le persone che digitano la versione HTTP del tuo sito ti espongono ad attacchi man-in-the-middle. Si tratta di attacchi in cui l’aggressore altera la comunicazione tra le parti e fa loro credere di essere ancora in comunicazione tra loro.
- Non consente di ignorare il messaggio del certificato non valido che, a sua volta, protegge il visitatore.
- Cookie hijacking: Questo può accadere quando qualcuno ruba un cookie di sessione su una connessione non sicura. I cookie possono contenere ogni tipo di preziose informazioni, come informazioni sulla carta di credito, nomi, indirizzi, ecc.
Come settare HSTS sul tuo sito
Di solito si aggiunge un redirect 301 quando si fa un redirect da HTTP a HTTPS. Google ha affermato ufficialmente che è possibile utilizzare insieme sia i redirect 301 del server che l’intestazione HSTS.
Esistono diversi tipi di direttive e/o livelli di sicurezza che possono essere applicati all’intestazione HSTS. Di seguito è riportato il più semplice, che utilizza la direttiva max-age. Questa definisce il tempo in secondi durante il quale il server web deve consegnare solo attraverso HTTPS.
Attivare HSTS in Apache
Aggiungete il seguente codice al tuo file host virtuale.
Header always set Strict-Transport-Security max-age=31536000
Attivare HSTS in NGINX
Aggiungete il seguente codice al file config di NGINX.
add_header Strict-Transport-Security "max-age=31536000";
In effetti, l’aggiunta dell’header HSTS offre dei vantaggi in termini di prestazioni. Se qualcuno prova a visitare il tuo sito via HTTP, invece di creare una richiesta HTTP, questo viene semplicemente reindirizzato alla versione HTTPS.
Preload HSTS
C’è anche il preload HSTS. Questo è fondamentalmente collocare il tuo sito web e/o il tuo dominio in un elenco HSTS approvato, integrato nel browser. Google compila ufficialmente questo elenco ed è utilizzato da Chrome, Firefox, Opera, Safari, IE11 e Edge. Potete trasmettere il tuo sito all’elenco ufficiale HSTS preload.
Tuttavia, per essere idonei, è necessario soddisfare alcuni requisiti aggiuntivi.
- Il server deve avere un certificato SSL/TLS valido.
- Reindirizzare tutto il traffico verso HTTPS.
- Servire HSTS sul dominio principale.
- Servire tutti i sottodomini su HTTPS, in particolare il sottodominio www, se esiste.
- La scadenza deve essere di almeno 1 anno (31536000 secondi)
- Deve essere specificata la direttiva token includeSubdomains
- Deve essere specificata la direttiva token preload.
Per fare tutto questo è necessario aggiungere all’intestazione HSTS gli ulteriori sottodomini e le direttive di preload.
Di seguito è riportato un esempio dell’intestazione HSTS aggiornata.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Come verificare l’Header HSTS
Ci sono alcuni semplici modi di controllare se l’HSTS funziona sul tuo sito. Potete lanciare Google Chrome Devtools, fare clic sulla scheda “Network” e guardare nella scheda delle intestazioni. Come potete vedere qui sotto, sul questo sito web viene assegnato il valore HSTS “strict-transport-security: max-age=63072000”.

Hsts – Come Usare Http Strict Transport Security
Per controllare l’header strict-transport-security attraverso uno strumento esterno puoi effettuare la scansione del tuo sito con uno strumento online gratuito come securityheaders.com, che ti dirà se l’header strict-transport-security viene applicato o meno.
Effetti dell’HSTS sulla SEO
Dopo che il tuo sito web è stato approvato e incluso nell’elenco di HSTS preload, potreste notare avvertimenti da parte di Google Search Console, o altri strumenti SEO di terze parti, sui redirect 307. Questo perché, quando qualcuno tenta di visitare il tuo sito via HTTP, adesso nel browser avviene un redirect 307 invece di un redirect 301. Di solito, un redirect 307 viene utilizzato solo per i reindirizzamenti temporanei. Un redirect 301 viene, invece, utilizzato per gli URL che sono stati spostati in modo permanente. Quindi non dovrebbe usare un redirect 301? E che dire degli effetti sulla SEO?
Beh, in realtà, un redirect 301 avviene comunque dietro le quinte. Il redirect 307 avviene a livello di browser, non a livello di server. È possibile far girare il sito su uno strumento che controlla il redirect a livello di server, come httpstatus, e vedrai che, in realtà, un redirect 301 c’è ancora. Pertanto, non dovete preoccuparti che l’header HSTS possa avere un impatto sulla tuo SEO.
Lascia un Commento
Vuoi partecipare alla discussione?Sentitevi liberi di contribuire!