Come implementare gli HTTP Security Headers

Se hai un sito web, devi sapere che, al giorno d’oggi, sempre più portali vengono compromessi e dati di vitale importanza finiscono nelle mani degli hacker. La maggior parte di queste funzionalità è data dalla mancanza dei protocolli di sicurezza. Se sei il proprietario di un sito web, assicurati di proteggere il tuo sito web da clickjacking, code injection, XSS (cross-site scripting), ecc. Se non sai minimamente come fare, non preoccuparti, ti aiuto io! Qu ti farò vedere come implementare gli HTTP Security Headers sul tuo sito web.

I browser moderni supportano molte intestazioni HTTP che possono migliorare la sicurezza delle applicazioni Web per la protezione da clickjacking, cross-site scripting e altri attacchi comuni, e puoi implementare queste funzionalità semplicemente aggiungendo poche righe di codice nel file htaccess presente nella root principale del tuo sito web (Per Server Web Apache o Lightspeed) o un file di configurazione NGINX, a seconda della tecnologia del server web che stai utilizzando. Ma vediamo subito come fare.

Come implementare gli HTTP Security Headers

Come implementare gli HTTP Security Headers.

L’implementazione delle intestazioni di sicurezza sul tuo sito Web, impedirà agli hacker di sondare il tuo server per vedere se ci sono vulnerabilità che possono sfruttare.

Cosa sono gli HTTP Security Headers?

Gli HTTP Security Headers sono delle direttive relative alla sicurezza del sito web, che vengono trasmesse attraverso l’HTTP header response, ovvero la risposta che il web server dà al software browser che sta cercando di accedere al sito web. Le intestazioni di sicurezza relative all’HTTP Security Headers definiscono limiti e istruzioni che impediscono azioni non desiderate e pericolose. Quindi, un buon plugin per la sicurezza, un buon firewall o un hosting di qualità, non ti terranno al sicuro senza le intestazioni di sicurezza giuste!

Come vedere quali HTTP Security Headers ho attivi?

Puoi vedere quali HTTP Security Headers hai attivi, tramite i siti web che ti elenco qui sotto. vedrai il tuo punteggio con la lista delle intestazioni di sicurezza mancanti e quelle presenti. Gli strumenti sono stati progettati per aiutarti a verificare rapidamente se il tuo server sta inviando intestazioni di risposta che contengono le politiche di sicurezza corrette, ma non rappresentano tools che ti dicono quali intestazioni vanno implementate e quali no. Spetta a te decidere. Ecco i siti web per la verifica degli HTTP Security Headers:

Il significato delle principali intestazioni di sicurezza

Esistono svariati HTTP Security Headers, deprecati e non, ma quelli più importanti sono questi:

  • X Content Type Options: indica ai browser di disabilitare MIME e lo sniffing dei contenuti. Ridurrà l’esposizione del tuo sito agli attacchi “download drive-by” e impedirà al tuo server di caricare contenuti dannosi mascherati.
  • Strict Transport Security (HSTS): obbliga il browser web a garantire che tutte le comunicazioni vengano inviate tramite una connessione https sicura.
  • Content Security Policy (CSP): impedisce un’ampia gamma di attacchi come l’iniezione di codice e gli attacchi XSS. Sfortunatamente, è anche una delle politiche più difficili da implementare e ha il maggiore potenziale di alterare l’aspetto del tuo sito se implementata in modo errato.
  • Referrer Policy: Lo scopo di un’intestazione Referrer-Policy è quello di controllare quali informazioni vengono inviate quando un visitatore lascia le tue pagine per visitare un altro portale.
  • X-frame-options: indica al browser se vuoi consentire o meno il frame del tuo sito, ovvero la riproduzione del tuo sito nei frame presenti su un altro sito. Impedendo a un browser di “riprodurre” il tuo sito su un altro sito, puoi difenderti da attacchi come il clickjacking.
  • Permissions-Policy: consente a un sito di controllare quali funzionalità e API possono essere utilizzate nel browser.
  • Expect-CT: indica ai browser di segnalare o applicare i requisiti di trasparenza del certificato. Questo può bloccare i certificati SSL non emessi e può essere impostato sulla modalità di segnalazione o sulla modalità di applicazione. Senza Expect CT, è molto più facile per gli hacker utilizzare i certificati emessi per errore. Se vuoi impostarlo, devi assicurarti che il tuo sito sia configurato correttamente in quanto al certificato SSL.

Dove vanno messi gli HTTP Security Headers?

Prima di operare su file importanti come questi, ti consiglio di fare un backup del tuo file htaccess. Ti ricordo che, nel caso il sito abbia problemi, prova a eliminare dal file htaccess una riga delle intestazioni di sicurezza alla volta, fino a quando non torna navigabile.

Ecco un esempio di HTTP Security Headers da inserire all’interno del file htaccess presente nella sezione principale del tuo sito web (la root principale), ovvero la cartella dove è presente il tuo sito web. Puoi incollare l’esempio presente qui sotto, all’inizio del file htaccess presente in: cPanel del tuo Hosting provider>File Manager>Cartella con i file del tuo sito>File htaccess.

HTTP Security Headers per Apache o Lightspeed:

# BEGIN MODULE HEADERS

Header always set Strict-Transport-Security "max-age=31536000;"
Header always set x-xss-protection "1; mode=block"
Header always set x-frame-options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "no-referrer-when-downgrade"
Header always set Content-Security-Policy "upgrade-insecure-requests"

# END MODULE HEADERS

HTTP Security Headers per NGINX:

Su NGINX, aggiungi le seguenti righe al tuo file nginx.conf (di solito si trova in /etc/nginx/nginx.conf). Assicurati di controllare i dettagli delle linee per assicurarti che queste siano le politiche che desideri limitare.

add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';
add_header X-Frame-Options 'deny';
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "img-src 'self' data:;";
add_header X-Permitted-Cross-Domain-Policies master-only;
add_header Referrer-Policy same-origin;
add_header Permissions-Policy "vibrate 'none';";
add_header Clear-Site-Data "cookies";

Bene, ti ho fatto vedere come implementare gli HTTP Security Headers. Ovviamente esistono tante altre intestazioni di sicurezza che puoi scegliere a seconda delle tue esigenze. Spero di esserti stato di aiuto, ciao e alla prossima! Leggi anche: come bloccare Hotlinking su WordPress.