← Torna al blog

Header di sicurezza: la guida completa all'implementazione

Perche gli header di sicurezza sono importanti

Gli header di sicurezza HTTP sono istruzioni che il tuo web server invia al browser, indicandogli come comportarsi quando gestisce il contenuto del tuo sito. Sono una delle misure di sicurezza piu efficaci e meno costose che puoi implementare. Nessuna modifica al codice dell'applicazione. Nessuna nuova dipendenza. Solo poche righe di configurazione del server.

Eppure la maggior parte dei siti web che analizziamo non hanno header di sicurezza critici. Secondo l'analisi annuale di Scott Helme, meno del 15% dei primi milione di siti web ha un header Content-Security-Policy. Questa guida copre ogni header di sicurezza importante in dettaglio.

Content-Security-Policy (CSP)

CSP e l'header di sicurezza piu potente e complesso. Controlla quali risorse il browser puo caricare sulla tua pagina: script, stili, immagini, font, frame e altro. Un CSP correttamente configurato e la tua difesa piu forte contro gli attacchi Cross-Site Scripting (XSS).

Come funziona CSP

Definisci una policy che specifica le fonti consentite per ogni tipo di risorsa. Se il browser incontra una risorsa non consentita dalla policy, la blocca e segnala la violazione.

Direttive principali

Direttiva Controlla Valori comuni
default-src Fallback per tutti i tipi di risorse 'self'
script-src Fonti JavaScript 'self', domini CDN specifici
style-src Fonti CSS 'self' 'unsafe-inline'
img-src Fonti immagini 'self' data: https:
font-src Fonti font 'self'
frame-ancestors Chi puo incorporare il tuo sito 'none'
object-src Flash, applet Java 'none'

Il problema 'unsafe-inline'

Molti siti usano 'unsafe-inline' per gli script, il che neutralizza la protezione XSS del CSP. L'alternativa corretta e usare nonce o hash: genera un token casuale per ogni caricamento di pagina, aggiungilo all'header CSP e ai tag script.

Report CSP

Inizia con Content-Security-Policy-Report-Only per testare la tua policy senza bloccare nulla. Una volta sicuro che la policy non rompe funzionalita legittime, passa all'enforcement.

Errori comuni CSP

  • Usare 'unsafe-inline' e 'unsafe-eval' per gli script.
  • Wildcard eccessivamente permissivi.
  • Dimenticare object-src 'none'.
  • Mancanza di base-uri.
  • Non monitorare i report.

X-Frame-Options

Controlla se il tuo sito puo essere incorporato in un iframe su un altro dominio. Protegge dagli attacchi di clickjacking.

Raccomandazione: X-Frame-Options: DENY

X-Content-Type-Options

Previene il MIME type sniffing. Un aggressore potrebbe caricare un file con estensione .jpg che in realta contiene JavaScript.

X-Content-Type-Options: nosniff

Referrer-Policy

Controlla quante informazioni referrer il browser invia quando si naviga dal tuo sito a un altro.

Raccomandazione: Referrer-Policy: strict-origin-when-cross-origin

Permissions-Policy

Controlla quali funzionalita del browser il tuo sito puo utilizzare: fotocamera, microfono, geolocalizzazione, pagamenti.

Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()

Strict-Transport-Security (HSTS)

Indica ai browser di connettersi al tuo sito solo tramite HTTPS. Per una discussione piu ampia su HTTPS e configurazione TLS, consulta la nostra guida ai certificati SSL/TLS.

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Strategia di distribuzione

  1. Inizia con max-age=300 (5 minuti). Testa tutto.
  2. Aumenta a max-age=86400 (1 giorno).
  3. Aumenta a max-age=604800 (1 settimana).
  4. Vai a max-age=31536000 (1 anno) e aggiungi includeSubDomains e preload.

Esempi di implementazione

Nginx

Aggiungi queste righe al blocco server nel nginx.conf. Usa la keyword always per assicurarti che gli header vengano inviati anche per le risposte di errore.

Apache

Aggiungi al file .htaccess o alla configurazione del virtual host. Assicurati che mod_headers sia abilitato.

Cloudflare

Cloudflare offre Transform Rules, Workers e il file _headers per Cloudflare Pages.

Impatto sulla sicurezza

Protezione Senza header Con header
Attacchi XSS Vulnerabile Mitigato da CSP
Clickjacking Vulnerabile Bloccato da X-Frame-Options
MIME sniffing Vulnerabile Prevenuto da X-Content-Type-Options
SSL stripping Vulnerabile alla prima visita Prevenuto da HSTS
Voto securityheaders.com D o F A o A+

Header di sicurezza e OWASP

Molti degli header discussi affrontano direttamente i rischi OWASP Top 10, in particolare gli attacchi di injection (A03:2021) e la configurazione errata della sicurezza (A05:2021). Per saperne di piu, leggi il nostro articolo OWASP Top 10 spiegato.

Piano di implementazione passo dopo passo

Fase 1: Vittorie rapide (Giorno 1)

X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy.

Fase 2: HSTS (Settimana 1-2)

Inizia con un max-age basso e aumenta gradualmente.

Fase 3: CSP (Settimana 2-4)

Distribuisci in modalita report-only, analizza, stringi, attiva l'enforcement.

Conclusione

Gli header di sicurezza sono una delle migliori misure di sicurezza in termini di rapporto costi-benefici. Non richiedono modifiche al codice, proteggono contro intere classi di attacchi e possono essere implementati in un pomeriggio.

Il tuo obiettivo dovrebbe essere un A+ su securityheaders.com. Se hai bisogno di aiuto, contatta il nostro team a Lugano. Aiutiamo le aziende in tutta la Svizzera a costruire applicazioni web sicure.

Vuoi sapere se il tuo sito è sicuro?

Richiedi un audit di sicurezza gratuito. In 48 ore ricevi un report completo.

Richiedi Audit Gratuito

Contatto Rapido