Cos’è la CSP e come protegge il tuo sito web?

Febbraio 17, 2025

CSP, acronimo di Content Security Policy (Politica di Sicurezza dei Contenuti), è un ulteriore livello di sicurezza per i siti web, progettato per rilevare e bloccare attacchi comuni come XSS (Cross-Site Scripting) e injection (iniezione di codice). In sostanza, la CSP funziona come una whitelist (lista bianca), specificando l’origine di script, stili, immagini e frame consentiti sul sito. Questo garantisce che solo le risorse esplicitamente indicate possano essere caricate, bloccando immediatamente qualsiasi richiesta non presente nella whitelist. I browser che non supportano CSP funzionano normalmente con i server che la implementano e viceversa. In caso di mancato supporto, la CSP viene ignorata e il sito applica la politica predefinita.

La CSP funziona aggiungendo l’header HTTP Content-Security-Policy alla risposta del server. Questo header contiene un insieme di direttive che definiscono quali tipi di contenuto possono essere caricati e da quali origini. Ad esempio, la direttiva script-src specifica l’origine dei file JavaScript consentiti.

Esistono diverse direttive nella CSP, ognuna delle quali controlla un tipo specifico di risorsa. Alcune direttive comuni includono:

  • default-src: Si applica a tutti i tipi di risorse se non viene definita una direttiva specifica.
  • script-src: Controlla il caricamento dei file JavaScript.
  • style-src: Controlla il caricamento dei file CSS.
  • img-src: Controlla il caricamento delle immagini.
  • font-src: Controlla il caricamento dei font.
  • frame-src: Controlla il caricamento degli iframe.
  • object-src: Controlla il caricamento di oggetti incorporati come Flash.
  • media-src: Controlla il caricamento dei file multimediali come audio e video.

Ogni direttiva può accettare uno o più valori, tra cui:

  • 'self': Consente il caricamento di risorse dalla stessa origine del sito web.
  • 'none': Non consente il caricamento di alcuna risorsa.
  • 'unsafe-inline': Consente l’uso di codice inline come <script> o stili inline. Tuttavia, è sconsigliato utilizzare questo valore poiché riduce l’efficacia della CSP.
  • Un URL specifico: Consente il caricamento di risorse dall’URL specificato.
  • Un nome di dominio: Consente il caricamento di risorse da tutti i sottodomini del dominio specificato. Ad esempio, example.com consente il caricamento di risorse da www.example.com, sub.example.com, ecc.
  • *: Wildcard, consente il caricamento di risorse da qualsiasi origine. È sconsigliato utilizzare questo valore poiché disabilita la maggior parte delle funzionalità di sicurezza della CSP.
  • data:: Consente il caricamento di risorse da URI di dati.
  • https:: Consente il caricamento di risorse da qualsiasi origine che utilizza HTTPS.

Esempio di una CSP semplice:

Content-Security-Policy: default-src 'self'; img-src 'self' data:; script-src 'self' https://example.com;

Questa CSP consente:

  • Il caricamento di tutti i tipi di risorse (eccetto immagini e script) dalla stessa origine del sito web.
  • Il caricamento di immagini dalla stessa origine o da URI di dati.
  • Il caricamento di script dalla stessa origine o da https://example.com.

Per monitorare le violazioni della CSP, è possibile utilizzare la direttiva report-uri o report-to. Questa direttiva consente al browser di inviare report sulle violazioni della CSP a un URL specificato. Servizi come report-uri.com offrono un’interfaccia per raccogliere e analizzare questi report, aiutando a comprendere meglio le vulnerabilità di sicurezza del sito web.

Implementare correttamente la CSP può ridurre significativamente il rischio di attacchi XSS e injection, proteggendo il sito web e gli utenti dalle minacce alla sicurezza informatica.

Leave A Comment

Categorie

Recent Posts

Create your account