WordPress è uno dei sistemi di gestione dei contenuti (CMS) più popolari al mondo. Proprio per questo motivo è anche uno dei bersagli preferiti dagli hacker, con 4,3 miliardi di tentativi di sfruttarne le vulnerabilità registrati in un solo anno. In qualità di gestore di un sito WordPress, potresti trovare questa cifra molto preoccupante. 

Per fortuna, ci sono diversi modi per rendere il tuo sito meno vulnerabile agli attacchi. Diventando un esperto di intestazioni di sicurezza HTTP, puoi limitare le azioni che server e browser possono eseguire, anche se il tuo sito contiene una vulnerabilità nota. 

In questo post, vedremo cosa sono le intestazioni HTTP e perché sono uno strumento importante nell’arsenale di qualsiasi gestore di siti web. Mostreremo quindi come aggiungere cinque intestazioni di sicurezza al tuo sito, utilizzando il conosciuto plugin redirection.

Iniziamo! 

Introduzione alle intestazioni di sicurezza HTTP

Ogni volta che qualcuno visita il tuo sito, il tuo server invierà un’intestazione di risposta HTTP al suo browser. Queste intestazioni indicano al browser come agire durante le interazioni con il tuo sito web, incluso come visualizzare gli errori e gestire la cache.

In questo post, ci concentreremo sulle intestazioni di sicurezza HTTP. Questi specificano i dettagli relativi alla sicurezza della comunicazione HTTP e possono rafforzare il tuo sito contro una serie di minacce come Cross-Site Scripting (XSS) , clickjacking e attacchi brute force 

Se utilizzate correttamente, queste intestazioni possono limitare i comportamenti che il browser e il server possono eseguire. Ciò può essere particolarmente utile per impedire agli hacker di sfruttare le vulnerabilità note in temi e plugin di WordPress. Dato che i temi e i plugin vulnerabili hanno un numero totale di installazioni attive di 70 milioni , l’utilizzo delle intestazioni di sicurezza HTTP sul tuo sito è una scelta intelligente.

Esistono diversi modi per aggiungere intestazioni di sicurezza al tuo sito. Puoi modificare il tuo file .htaccess utilizzando un client come FileZilla o utilizzare uno strumento incentrato sulla sicurezza come Sucuri o Cloudflare . Tuttavia, in questo post ti mostreremo come aggiungere rapidamente e facilmente queste intestazioni utilizzando il plugin redirection.

Come impostare il plugin redirection per HTTP security Header

Redirection è principalmente un gestore di redirect, ma include anche varie intestazioni di sicurezza HTTP preimpostate che puoi aggiungere al tuo sito web. Dopo aver installato e attivato il plugin, vai su Strumenti > Redirection e fai clic su Avvia configurazione:

Il plugin redirection

Nella pagina successiva, puoi specificare se Redirection deve creare automaticamente un redirect nel caso in cui venga modificato un permalink di un articolo o di una pagina. Questa impostazione può aiutarti a evitare errori 404 . Redirection può anche creare un log dei redirect e degli errori 404 ma tieni presente che questa opzione aumenterà i requisiti di archiviazione del database.

Il plugin di redirection di WordPress.

Dopo aver configurato queste impostazioni, fai clic su Continua configurazione. Redirection comunica con WordPress tramite l’ API ( Representational State Transfer) dell’interfaccia di programmazione dell’applicazione (REST ), quindi verificherà che questa API sia disponibile. Supponendo che l’API REST sia accessibile, fai clic su Termina installazione. 

Ora che il plugin è attivo e funzionante, vai su Strumenti > Redirection e seleziona la scheda Sito :

Come aggiungere intestazioni di sicurezza HTTP utilizzando il plugin redirection.

Successivamente, scorri fino alla sezione Intestazioni HTTP e fai clic sul menu a discesa Aggiungi un Header. Seleziona Aggiungi impostazioni di sicurezza predefinite: 

Redirection fornisce una gamma di intestazioni di sicurezza HTTP.

Ora, fai nuovamente clic sul pulsante Aggiungi impostazioni di sicurezza predefinite. Questo importerà l’elenco di redirect delle intestazioni di sicurezza HTTP preimpostate:

Le intestazioni di sicurezza HTTP.

A questo punto, sul tuo sito sono in esecuzione diverse intestazioni di sicurezza HTTP, per gentile concessione del plugin redirection. Anche se in questo post non lo vedremo, puoi utilizzare redirection anche per creare intestazioni personalizzate.

Come aggiungere intestazioni di sicurezza HTTP in WordPress

Finora abbiamo visto i passaggi principali per aggiungere le intestazioni di sicurezza di Redirection al tuo sito. Con il tempo potresti voler modificare il loro comportamento predefinito per ottenere risultati migliori. Analizziamo alcune di queste intestazioni di sicurezza in modo più dettagliato e vediamo come puoi personalizzarle per soddisfare meglio le tue esigenze. 

1. X-Frame-Options

X-Frame-Options (XFO) fornisce protezione dal clickjacking istruendo il browser su come comportarsi durante la gestione dei contenuti del tuo sito. Il clickjacking si verifica quando un utente malintenzionato utilizza un iframe trasparente per indurre un visitatore a interagire con un elemento nascosto, come ad esempio un pulsante.

Per impostazione predefinita, XFO non consente il rendering di una pagina in un frame indipendentemente dalla provenienza del contenuto. Questo può proteggere i tuoi visitatori dagli attacchi basati su XFO. Tuttavia, se queste impostazioni predefinite causano problemi di usabilità , puoi passare all’opzione sameorigin. Questa impostazione consente il caricamento della pagina in un frame sulla stessa origine della pagina stessa, il che dovrebbe risolvere eventuali problemi riscontrati con i tuoi contenuti: 

La configurazione dell'intestazione X-Frame del plugin redirection

In alternativa, puoi optare per la direttiva URI allow-from. Questa impostazione consente di caricare la pagina in un frame sulle origini o sul dominio specificati. Dopo aver selezionato questa opzione, avrai accesso a un campo in cui puoi inserire l’URI (Uniform Resource Identifier) che desideri inserire nella whitelist. 

2. Protezione X-XSS

L’intestazione X-XSS-Protection impedisce il caricamento delle pagine quando viene rilevato un attacco Cross-Site Scripting (XSS) . Se un hacker riesce a lanciare un attacco XSS con successo, potrebbe potenzialmente eseguire codice dannoso sul tuo server o nel browser di un visitatore. Ciò include codice in grado di eseguire varie azioni, come il furto delle informazioni personali del visitatore o il reindirizzamento a un sito web completamente diverso.

Per impostazione predefinita, questa intestazione è impostata su 1; mode=block. Ciò significa che se viene rilevato un attacco XSS, il browser ripulirà la pagina e ne impedirà il rendering. Le opzioni alternative includono 1 , che sanificherà la pagina, ma non ne impedirà il rendering:

L'intestazione di sicurezza X-XSS-Protection.

Il plugin Redirection supporta anche la direttiva 1; report=<reporting-URI>. Questo attributo sanifica la pagina ma segnala anche la violazione utilizzando la direttiva report-uri .

3. X-Content-Type-Options

Questa intestazione di risposta indica che i tipi MIME (Multipurpose Internet Mail Extensions) annunciati nelle intestazioni Content-Type non devono essere modificati. Questa può essere un’importante linea di difesa contro lo sniffing dei contenuti.

Come parte di questo attacco, una terza parte trasformerà i tipi MIME non eseguibili in tipi eseguibili. Potrebbero quindi tentare di caricare contenuti dannosi sul tuo sito web camuffandoli in qualcos’altro.

Per impostazione predefinita, l’intestazione X-Content-Type-Options di Redirection utilizza la direttiva nosniff. Questo blocca tutte le richieste se la destinazione è di tipo style e il tipo MIME non è text/css . Blocca anche le richieste se la destinazione è di tipo script e il tipo MIME non è un tipo MIME JavaScript. Con queste impostazioni in atto, il browser deve utilizzare il tipo MIME inviato dal server di origine.

La direttiva nosniff abilita anche la protezione Cross-Origin Read Blocking (CORB) per diversi tipi MIME, inclusi text/html e application/json. CORB è un algoritmo in grado di identificare e bloccare i carichi di risorse cross-origin nei browser web prima che raggiungano la tua pagina. Nella maggior parte dei browser, questo può mantenere le informazioni sensibili fuori da contesti di esecuzione di script non attendibili, il che rende più difficile per gli hacker rubare i tuoi dati.

4. Politica di sicurezza dei contenuti o Content Security Policy (CSP)

La Content Security Policy (CSP) di Redirection aggiunge un ulteriore livello di sicurezza che può aiutare a rafforzare il tuo sito contro diversi attacchi comuni. Per impostazione predefinita, Redirection utilizza quanto segue:

default-src 'self'; script-src 'unsafe-inline' 'unsafe-eval' http:; style-src 'unsafe-inline' http:; img-src http: data:; font-src http: data:; sandbox allow-forms allow-scripts

Questo CSP afferma che tutto il contenuto dovrebbe provenire dal dominio del sito e definisce anche una fonte valida per immagini e caratteri. Ciò può impedire al browser di caricare risorse non attendibili. 

Puoi anche utilizzare l’ attributo sandbox per impostare un set aggiuntivo di restrizioni per il contenuto nell’iframe. Questo può essere un elenco separato da spazi di valori predefiniti, come possiamo vedere nell’attributo predefinito del plugin Redirection:

sandbox allow-forms allow-scripts

Qui, redirection consente l’invio di moduli e script. CSP è un argomento complesso, quindi ti consigliamo di controllare l’elenco completo di tutti i possibili valori per vedere quali diverse politiche di sicurezza puoi creare. 

5. Referrer-policy

Quando scrivi contenuti, includi spesso collegamenti a siti web esterni. Ogni volta che un visitatore fa clic su uno di questi link, il sito di destinazione riceverà informazioni sulla provenienza di questa persona.

I dati dei referrer possono essere preziosi per aiutare i siti web a comprendere il loro traffico. Tuttavia, a volte potresti dover limitare la quantità di informazioni che condividi con queste terze parti. Ciò è particolarmente importante se il punto di origine contiene dati sensibili che potrebbero identificare gli utenti. La fuga di informazioni personali tra le origini può compromettere la privacy del tuo pubblico e fornire agli hacker più informazioni con cui lavorare.

Puoi controllare la quantità di dati inviati tramite l’ intestazione Referer , utilizzando Referrer-policy. Per impostazione predefinita, il plugin redirection utilizza il valore no-referrer-when-downgrade . Ciò impedisce al browser di inviare l’intestazione Referrer durante la navigazione da HTTPS a HTTP meno sicuro. Puoi sostituire no-referrer-when-downgrade con un intervallo di valori alternativi: 

L'intestazione di sicurezza HTTP del criterio Referrer.

Le possibili opzioni includono no-referrer, che indica al browser di non inviare mai l’intestazione Referer con richieste effettuate dal tuo sito web. Puoi controllare MDN web Docs per saperne di più sui valori dei criteri Referrer.

Conclusione 

In qualità di gestore o proprietario di un sito web, devi proteggere il tuo CMS da attacchi diversi. Le intestazioni di sicurezza HTTP possono limitare le azioni che server e browser possono eseguire, il che può essere prezioso per proteggere il tuo sito dalle principali minacce alla sicurezza.

Ricapitoliamo cinque intestazioni di sicurezza HTTP che puoi aggiungere al tuo sito utilizzando il plugin redirection.

  1. X-Frame-Options
  2. Protezione X-XSS
  3. X-Content-Type-Options
  4. Politica di sicurezza dei contenuti
  5. Referrer-policy

Buon lavoro.