Hosting e infrastruttura

Intestazioni di sicurezza HTTP: CSP, HSTS e il resto

Cosa fanno davvero CSP, HSTS e le altre intestazioni di sicurezza HTTP, come configurarle e quale attacco blocca ciascuna, senza gergo tecnico.

Team rabbitclipPubblicato: 4 min di lettura

In breve

Le intestazioni di sicurezza HTTP sono regole che un server web aggiunge a ogni risposta per dire al browser come comportarsi. CSP limita da quali fonti possono essere caricati script e immagini, HSTS costringe il browser a usare sempre una connessione cifrata, e intestazioni più piccole come X-Content-Type-Options e Referrer-Policy chiudono rischi altrettanto reali. Nessuna richiede codice su misura; bastano poche righe nella configurazione del server o del CDN.

Quando il sito di uno studio legale esegue uno script pubblicitario di terze parti senza una CSP configurata correttamente, quello script può iniettare quasi qualsiasi codice nella pagina; su una pagina in cui una persona sta compilando un modulo, questo rischio non è astratto. Le intestazioni di sicurezza limitano fin dall'inizio cosa un simile script può fare.

Cos'è un'intestazione di sicurezza HTTP, e come funziona?

Un'intestazione di sicurezza HTTP è una riga di istruzione aggiuntiva che il server invia con ogni risposta; il browser la legge e limita la pagina di conseguenza. Le intestazioni non cambiano il contenuto della pagina, solo cosa il browser può fare con quel contenuto.

Aggiungerle non richiede scrivere una nuova funzionalità; bastano poche righe nella configurazione di Nginx, Apache, Cloudflare o di un framework come Next.js. Una volta configurate correttamente, partono automaticamente con ogni richiesta di pagina.

Cosa fa davvero Content-Security-Policy (CSP)?

CSP definisce da quali indirizzi una pagina può caricare script, immagini, font e stili. Secondo la guida alle intestazioni HTTP di OWASP, CSP è l'unica intestazione che mitiga in modo significativo l'esecuzione di codice già iniettato in una pagina; questo la rende una delle difese più efficaci contro gli attacchi di cross-site scripting (XSS).

La parte difficile della configurazione è elencare davvero ogni risorsa di terze parti usata dal sito, analytics, un servizio di font, un fornitore di pagamenti; dimenticarne una rompe parte della pagina. Per questo CSP viene di solito eseguita prima in modalità solo report, i log vengono controllati, prima di passare alla modalità restrittiva.

Cosa garantisce HSTS (Strict-Transport-Security)?

HSTS dice al browser di non connettersi mai più a un sito in http:// non cifrato; l'istruzione viene salvata lato browser, quindi anche se qualcuno digita http nella barra degli indirizzi, la connessione passa automaticamente a https. Questo impedisce che una connessione venga declassata a non cifrata a metà strada, un attacco di intercettazione.

La configurazione consigliata da MDN mantiene un max-age lungo, circa due anni, copre anche i sottodomini, e può essere inviata alla lista di preload; ma prima di entrare in quella lista, ogni sottodominio deve davvero funzionare su https, perché uscirne dopo non è semplice.

Come configurare un set base di intestazioni

Per un piccolo sito aziendale, le seguenti cinque intestazioni sono un punto di partenza ragionevole; ciascuna chiude un rischio diverso.

  • Content-Security-Policy: limita da dove possono essere caricati script e risorse
  • Strict-Transport-Security: mantiene la connessione sempre cifrata
  • X-Content-Type-Options: nosniff, impedisce al browser di indovinare male il tipo di un file
  • Referrer-Policy: limita quali informazioni della pagina trapelano verso altri siti
  • Permissions-Policy: limita l'accesso a funzioni del browser come fotocamera e posizione

Testare le intestazioni e mantenerle senza errori

Un'intestazione configurata male può rompere la pagina in modo visibile o disattivare silenziosamente una funzione; entrambi i casi vanno testati prima della pubblicazione. La console sviluppatore del browser mostra direttamente le violazioni CSP; quando una risorsa viene bloccata, la console la nomina e spiega perché.

Le modifiche andrebbero provate prima in un ambiente di test, poi su una pagina live a basso rischio; applicarle a tutto il sito in una volta rischia di rompere un'integrazione di terze parti inaspettata.

Errori frequenti

Le intestazioni di sicurezza possono diventare un'impostazione configurata una volta e poi dimenticata; questo porta a un guasto che nessuno nota finché non viene aggiunta una nuova integrazione.

  • allentare CSP con unsafe-inline, il che vanifica in gran parte lo scopo dell'intestazione
  • aggiungere HSTS alla lista di preload senza averlo prima testato
  • non aggiornare la lista CSP quando viene aggiunto un nuovo script di terze parti
  • configurare le intestazioni solo sulla homepage e dimenticare il resto del sito

Le intestazioni di sicurezza HTTP non cambiano l'aspetto di un sito; definiscono cosa può fare il browser con esso. Configurarle è un lavoro una tantum, mantenerle aggiornate non lo è. Una prima chiamata con rabbitclip è un buon punto per verificare quali intestazioni ha davvero il vostro sito oggi.

Domande frequenti

Le intestazioni di sicurezza influenzano il SEO?

Non direttamente, ma intestazioni come HSTS, che forzano HTTPS, sono un segnale positivo indiretto per i motori di ricerca che valorizzano le connessioni sicure.

Configurare CSP può rompere un sito funzionante?

Sì, se configurata male. Testare prima in modalità solo report e controllare i log prima di passare alla modalità restrittiva riduce questo rischio.

Dove si configurano queste intestazioni?

Nella configurazione di Nginx, Apache, Cloudflare o di un framework come Next.js; la sintassi cambia, la logica resta la stessa.

Un piccolo sito ha davvero bisogno di queste intestazioni?

Sì. Le dimensioni non contano qui; ogni sito con un modulo, una pagina di accesso o script di terze parti affronta gli stessi rischi di base.

Condividi

Servizio correlatoCloud & InfrastrutturaAbbiamo visto infrastrutture che si bloccano quando il sistema cresce e cedono nei momenti di picco; per questo le costruiamo solide fin dall'inizio. Progettiamo sicurezza e continuità dal primo giorno e ci assumiamo il peso tecnico del lavoro.

Articoli correlati

Se non sa da dove iniziare, non è un problema: è nel posto giusto.

Il progetto che ha in mente può essere già definito, oppure ancora solo un'idea. Vanno bene entrambi. Con una breve conversazione parliamo insieme di dove si trova e dove può arrivare.

Organizziamo un incontro
Parliamo del progetto