Really Simple SSL Pro: Content Security Policy per WordPress
La Content Security Policy (CSP) è considerata uno degli header di sicurezza più potenti e complessi da implementare. Definisce esattamente quali risorse il browser è autorizzato a caricare ed eseguire, rappresentando una barriera efficace contro attacchi XSS, injection di codice e data exfiltration. Really Simple SSL Pro offre un sistema guidato per implementare la CSP su WordPress senza dover scrivere regole manualmente. Vediamo come funziona e come configurarla correttamente.
Che Cos’è la Content Security Policy
La Content Security Policy è un header HTTP che dice al browser: “per questa pagina, puoi caricare script solo da queste origini, stili solo da queste origini, immagini solo da queste origini” e così via. Qualsiasi risorsa che non corrisponde alle regole definite nella CSP viene bloccata dal browser.
Questo è estremamente potente perché, anche se un attaccante riesce a iniettare codice HTML nel tuo sito (ad esempio tramite un commento malevolo, un campo di input non sanitizzato o una vulnerabilità in un plugin), il browser rifiuterà di eseguire lo script iniettato perché non proviene da un’origine autorizzata.
Senza CSP, il browser esegue qualsiasi script presente nella pagina, indipendentemente dalla sua origine. Con CSP, il browser diventa selettivo e blocca tutto ciò che non è esplicitamente autorizzato.
Le Direttive Fondamentali della CSP
Una CSP è composta da una serie di direttive, ciascuna delle quali controlla un tipo specifico di risorsa:
default-src: è la direttiva di fallback. Se una direttiva specifica non è definita, il browser usa default-src. Impostarla su ’self’ significa “per impostazione predefinita, carica solo risorse dal mio stesso dominio”.
script-src: controlla da dove possono essere caricati gli script JavaScript. È la direttiva più critica per la sicurezza, perché gli script malevoli sono il vettore principale degli attacchi XSS.
style-src: controlla da dove possono essere caricati i fogli di stile CSS. Molti plugin WordPress utilizzano stili inline, quindi potrebbe essere necessario aggiungere ’unsafe-inline’ per compatibilità.
img-src: controlla da dove possono essere caricate le immagini. Se il tuo sito utilizza immagini da CDN, servizi esterni o Gravatar, devi aggiungere le relative origini.
font-src: controlla da dove possono essere caricati i font. Se utilizzi Google Fonts, devi autorizzare fonts.gstatic.com.
connect-src: controlla le connessioni di rete effettuate da JavaScript tramite fetch, XMLHttpRequest, WebSocket, ecc. Plugin come WooCommerce, editor real-time e chat widget necessitano di autorizzazioni specifiche qui.
frame-src: controlla quali siti possono essere caricati in iframe nella tua pagina. Se embed YouTube, Google Maps o altri widget, devi autorizzare i relativi domini.
form-action: controlla verso quali URL i form del tuo sito possono inviare dati. Utile per prevenire il dirottamento dei form verso siti malevoli.

Il Problema della CSP con WordPress
Implementare una CSP su WordPress è notoriamente complesso, e la ragione principale è che WordPress e i suoi plugin fanno largo uso di JavaScript e CSS inline. Ogni volta che un plugin inserisce un tag <script> direttamente nell’HTML della pagina (invece di caricare un file .js esterno), una CSP restrittiva lo bloccherebbe.
Per gestire gli script inline, la CSP offre diverse opzioni:
- ’unsafe-inline’: permette tutti gli script inline. Risolve il problema di compatibilità ma vanifica gran parte della protezione CSP contro XSS.
- ’nonce-{random}’: ogni script inline autorizzato riceve un token casuale (nonce) generato dal server ad ogni richiesta. Solo gli script con il nonce corretto vengono eseguiti. È la soluzione più sicura ma richiede che WordPress e tutti i plugin inseriscano il nonce nei loro script.
- ’strict-dynamic’: se uno script autorizzato (tramite nonce) carica altri script dinamicamente, anche quelli vengono autorizzati automaticamente. Semplifica la gestione degli script che caricano librerie a cascata.
Really Simple SSL Pro implementa il sistema di nonce-based CSP, generando automaticamente un nonce per ogni pagina e applicandolo agli script inline di WordPress. Questo offre un ottimo compromesso tra sicurezza e compatibilità.
Configurare la CSP con Really Simple SSL Pro: la Modalità Learning
Una delle funzionalità più utili di Really Simple SSL Pro è la modalità Learning (apprendimento) per la CSP. Ecco come funziona:
Passo 1 — Attiva la modalità Learning: nella dashboard di Really Simple SSL, vai alla sezione Content Security Policy e attiva la modalità di apprendimento. In questa modalità, il plugin invia la CSP con la direttiva Content-Security-Policy-Report-Only invece di Content-Security-Policy. Questo significa che il browser segnala le violazioni senza bloccare nulla.
Passo 2 — Naviga il sito: visita le diverse pagine del tuo sito, inclusa l’area di amministrazione, le pagine con form, il carrello WooCommerce (se presente) e qualsiasi pagina con contenuti speciali. Il plugin raccoglie le segnalazioni delle violazioni e costruisce una lista delle risorse che il tuo sito utilizza.
Passo 3 — Rivedi le regole suggerite: Really Simple SSL Pro mostra le origini rilevate durante la fase di learning e suggerisce le direttive CSP appropriate. Puoi approvare o rifiutare ciascuna origine.
Passo 4 — Attiva la CSP: quando sei soddisfatto delle regole, passa dalla modalità Report-Only alla modalità Enforce. Da questo momento, il browser bloccherà attivamente qualsiasi risorsa non autorizzata.

Esempio di CSP per un Sito WordPress Tipico
Ecco come potrebbe apparire una CSP per un sito WordPress tipico che utilizza Google Fonts, Google Analytics, YouTube embed e Gravatar:
default-src ’self’; script-src ’self’ ’nonce-{random}’ www.googletagmanager.com www.google-analytics.com; style-src ’self’ ’unsafe-inline’ fonts.googleapis.com; img-src ’self’ data: *.gravatar.com www.google-analytics.com; font-src ’self’ fonts.gstatic.com; frame-src www.youtube.com www.google.com; connect-src ’self’ www.google-analytics.com;
Questa è una configurazione di base. Ogni sito avrà esigenze diverse in base ai plugin installati, ai servizi di terze parti utilizzati e alle funzionalità implementate.
CSP e WooCommerce
Se il tuo sito utilizza WooCommerce, la CSP richiede attenzioni aggiuntive. I gateway di pagamento come Stripe e PayPal caricano script dai propri domini per gestire i pagamenti in modo sicuro. Se questi domini non sono autorizzati nella CSP, il checkout non funzionerà.
Per Stripe, ad esempio, devi autorizzare js.stripe.com in script-src e frame-src, oltre a api.stripe.com in connect-src. Per PayPal, le origini da autorizzare sono www.paypal.com e www.paypalobjects.com.
La modalità Learning di Really Simple SSL Pro è particolarmente utile per WooCommerce: naviga l’intero flusso di checkout durante la fase di apprendimento per assicurarti che tutte le risorse necessarie vengano rilevate.
CSP e Plugin di Terze Parti
Alcuni plugin WordPress comuni richiedono eccezioni CSP specifiche:
- Google reCAPTCHA: script-src e frame-src per
www.google.comewww.gstatic.com - Facebook Pixel: script-src e connect-src per
connect.facebook.netewww.facebook.com - HubSpot: script-src per
js.hs-scripts.com,js.hsforms.net,js.hs-analytics.net - Elementor: potrebbe richiedere
’unsafe-eval’in script-src per alcune funzionalità dell’editor - Jetpack: connect-src per
stats.wp.come script-src pers0.wp.com
Gestire le Violazioni CSP
Anche dopo aver configurato la CSP, potrebbero verificarsi violazioni. Really Simple SSL Pro offre un sistema di reporting che raccoglie le violazioni e le mostra nella dashboard. Questo è utile per:
- Identificare risorse legittime che non sono state incluse nella CSP durante la fase di learning
- Rilevare tentativi di attacco (script injection) che vengono bloccati dalla CSP
- Monitorare l’impatto di aggiornamenti di plugin che potrebbero aggiungere nuove risorse esterne
Quando aggiungi un nuovo plugin o servizio al tuo sito, ricordati di verificare se richiede modifiche alla CSP. La modalità Learning può essere riattivata temporaneamente per rilevare le nuove risorse.

CSP Level 2 e Level 3
La specifica CSP si è evoluta nel tempo. CSP Level 2 ha introdotto i nonce e gli hash per gli script inline, oltre al reporting migliorato. CSP Level 3 ha aggiunto ’strict-dynamic’ e migliorato la compatibilità con le single-page application.
Really Simple SSL Pro supporta le funzionalità di CSP Level 2 e Level 3, inclusi nonce, hash e strict-dynamic. La scelta di quali funzionalità utilizzare dipende dalla compatibilità browser richiesta dal tuo sito.
Errori Comuni nell’Implementazione della CSP
Ecco gli errori più frequenti da evitare:
Partire con una CSP troppo restrittiva: attivare subito una CSP restrittiva in modalità Enforce senza fase di learning causa quasi certamente problemi. Usa sempre la modalità Report-Only prima.
Usare ’unsafe-inline’ e ’unsafe-eval’ ovunque: se la tua CSP include script-src ’unsafe-inline’ ’unsafe-eval’, stai praticamente annullando la protezione contro XSS. Usa i nonce quando possibile.
Dimenticare le sottopagine: la CSP si applica a tutte le pagine, ma diverse pagine possono caricare risorse diverse. Assicurati di navigare l’intero sito durante la fase di learning.
Non monitorare dopo il deploy: la CSP non è “imposta e dimentica”. Plugin aggiornati, nuovi widget e modifiche ai servizi esterni possono richiedere aggiornamenti alla policy.
Conclusioni
La Content Security Policy è uno degli strumenti più efficaci per proteggere un sito WordPress dagli attacchi XSS e dall’injection di codice. Grazie alla modalità Learning di Really Simple SSL Pro, l’implementazione è diventata accessibile anche a chi non ha competenze tecniche avanzate. L’importante è procedere gradualmente, testare accuratamente e monitorare le violazioni nel tempo.
Se la configurazione della CSP ti sembra troppo complessa o se hai un sito WordPress con molti plugin e servizi di terze parti, contatta G Tech Group per un’implementazione professionale che garantisca sicurezza senza compromettere la funzionalità.
Leggi anche gli altri articoli della serie Really Simple SSL
- Really Simple SSL: Hardening degli Header di Sicurezza
- Configurare HSTS con Really Simple SSL: HTTP Strict Transport Security
- Really Simple SSL e WooCommerce: Sicurezza per E-Commerce
- Really Simple SSL Free vs Pro: Confronto Funzionalità e Prezzi 2026
- Really Simple SSL: Vulnerability Detection e Server Health Check
Per una protezione completa del tuo sito WordPress, combina Really Simple SSL Pro con un hosting WordPress sicuro che offra firewall applicativo, protezione DDoS e monitoraggio proattivo delle minacce. La sicurezza è un approccio a strati, e ogni livello conta.
Migliora il Tuo Sito WordPress
Scopri le nostre guide complete sugli altri plugin essenziali per WordPress: