Vincolare le risorse che si possono caricare in una pagina web usando l’header HTTP Content-Security-Policy

Content-Security-Policy è un header HTTP che permette di vincolare le risorse che si possono caricare da una pagina, come ad esempio JavaScript, CSS, o altro.

Lo si usa principalmente come header HTTP, e quindi ad esempio all’interno del file .htaccess, ma lo si può includere, anche se con qualche limitazione, come meta nell’header di pagina.

https://content-security-policy.com/ qui la documentazione completa dell’header.

Dentro l’htaccess va incluso con la sintassi:

Header set Content-Security-Policy "CONTENUTO"

ed è valido purché Apache abbia attivo il modulo header.

Il contenuto dell’header è composto da coppie chiave-valore, in cui le chiavi sono i tipi di oggetto e i valori le tipologie permesse. La chiave “default-src” è la regola di default che vale per ogni tipo di oggetto, i vari “script-src”, “style-src” etc vincolano specifici

Un esempio di contenuto:

default-src ‘none’; script-src ‘self’ ‘unsafe-inline’; frame-src ‘self’; worker-src ‘self’  ; img-src ‘self’ ; style-src ‘self’ ‘unsafe-inline’ fonts.googleapis.com fonts.gstatic.com;  connect-src ‘self’ backend-catnic.it; object-src ‘self’; media-src ‘self’; form-action ‘self’; base-uri ‘self’; font-src ‘self’ fonts.gstatic.com;