Tessera Avvia un check EN

Header di sicurezza HTTP: cosa sono e come configurarli

A cosa servono HSTS, CSP, X-Frame-Options e X-Content-Type-Options, con valori di partenza e configurazioni pronte da copiare.

Ultimo aggiornamento: · Hyperion S.r.l.

Che cosa sono

Gli header di sicurezza HTTP sono istruzioni che il server invia al browser insieme a ogni pagina. Attivano protezioni che il browser applica solo se il sito le chiede: usare sempre HTTPS, non caricare la pagina dentro siti di terzi, eseguire solo gli script autorizzati. Si configurano sul server, senza modificare l'applicazione, e sono tra i problemi più frequenti nelle scansioni di sicurezza.

I quattro header principali

HeaderDa cosa proteggeValore consigliato di partenza
Strict-Transport-Security (HSTS)Intercettazione della connessione: obbliga il browser a usare solo HTTPSmax-age=31536000; includeSubDomains
Content-Security-Policy (CSP)Cross-site scripting e iniezione di contenuti: decide da dove si possono caricare script e risorsedefault-src 'self'; object-src 'none'; frame-ancestors 'self'; base-uri 'self', prima in modalità report-only
X-Frame-OptionsClickjacking: impedisce di caricare la pagina in un iframe di un altro sitoSAMEORIGIN oppure DENY (o la direttiva CSP frame-ancestors)
X-Content-Type-OptionsMIME sniffing: impedisce al browser di interpretare un file con un tipo diverso da quello dichiaratonosniff

Due header utili in aggiunta: Referrer-Policy: strict-origin-when-cross-origin, che limita le informazioni inviate ad altri siti quando l'utente clicca un link, e Permissions-Policy, che disattiva le funzioni del browser che il sito non usa, per esempio camera=(), microphone=(), geolocation=(). Conviene invece togliere X-Powered-By, che rivela tecnologia e versione del server.

Come attivarli

nginx

# nel blocco server { } del sito in HTTPS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy-Report-Only "default-src 'self'; object-src 'none'; frame-ancestors 'self'; base-uri 'self'" always;

Attenzione: in nginx un blocco location che contiene a sua volta un add_header non eredita quelli del blocco server. Se usi add_header anche nei location, ripeti lì gli header di sicurezza.

Apache

# nel VirtualHost HTTPS o nel file .htaccess (richiede mod_headers)
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Content-Security-Policy-Report-Only "default-src 'self'; object-src 'none'; frame-ancestors 'self'; base-uri 'self'"

Node.js con Express

// npm install helmet
import helmet from "helmet";
app.use(helmet()); // HSTS, CSP di base, nosniff, frame-ancestors; rimuove X-Powered-By

Sulle piattaforme gestite (hosting condivisi, CDN, servizi cloud) gli header si impostano di solito dal pannello o da un file di configurazione dedicato: cerca la voce "custom headers" o "intestazioni personalizzate".

Errori da evitare

Come verificarli

Da un terminale: curl -sI https://tuosito.it mostra gli header restituiti dal server. Oppure avvia un Quick Check: il report elenca gli header presenti e mancanti, con il punteggio CVSS e l'istruzione per correggere ogni problema.

Fonti

Domande frequenti

Gli header di sicurezza rallentano il sito?

No. Sono poche righe di testo aggiunte alla risposta del server e non hanno effetti misurabili sulla velocità.

Quali header sono più importanti?

Strict-Transport-Security e Content-Security-Policy sono quelli con l'impatto maggiore; X-Frame-Options e X-Content-Type-Options sono semplici da attivare e vanno messi comunque.

Basta un plugin per attivarli?

Spesso sì, ma è preferibile impostarli sul server o sul servizio di hosting, perché così valgono per tutte le risposte, comprese immagini, file e pagine di errore.