Vai al contenuto principale

Generatore di CSP

Componi una Content Security Policy partendo da modelli (rigido, analytics, permissivo), regola ogni direttiva, attiva Report-Only o upgrade-insecure-requests e copia l’header HTTP o il tag meta, con avvisi su unsafe-inline, unsafe-eval e caratteri jolly.

  • Appunti

Integra questo widget

Personalizza il risultato, controlla l’anteprima e copia il codice.

Anteprima

Tipo di codice di integrazione

Codice da copiare

Responsive e ridimensionato automaticamente da Bethemesh.

Modello

Genera un header di monitoraggio che non blocca le risorse.

Direttive

Separa le sorgenti con spazi o virgole.

Header HTTP

Tag meta

Policy grezza

Questo strumento ti è stato utile?

Come funziona questo strumento?

Il generatore di CSP ti aiuta a scrivere l’header Content-Security-Policy, che indica al browser da quali sorgenti il tuo sito può caricare script, stili, immagini e connessioni. È pensato per sviluppatori, integratori front-end e sistemisti che vogliono ridurre l’impatto di una falla XSS senza ricordare a memoria la sintassi delle direttive.

Una CSP (W3C Content Security Policy Level 3) è un elenco di direttive separate da punto e virgola, ognuna seguita dalle sue sorgenti: `default-src 'self'; script-src 'self' https://www.googletagmanager.com; object-src 'none'; base-uri 'self'`. Le parole chiave come `'self'`, `'none'` o `'unsafe-inline'` vanno tra apici singoli, host e schemi (`https:`, `data:`) no. Le direttive di caricamento (script-src, img-src, connect-src…) ereditano da default-src se mancano, ma base-uri, form-action e frame-ancestors no: per questo lo strumento ne segnala l’assenza.

Lo strumento unisce i valori inseriti, elimina duplicati e campi vuoti e produce tre output: la policy grezza, l’header `Content-Security-Policy` (o `Content-Security-Policy-Report-Only` in modalità di monitoraggio) e un tag `<meta http-equiv>`. Poi analizza la policy e avvisa se mancano default-src, object-src o base-uri, oppure se `'unsafe-inline'`, `'unsafe-eval'` o il jolly `*` indeboliscono la protezione. La direttiva upgrade-insecure-requests, senza valore, chiede al browser di caricare in HTTPS le risorse referenziate in HTTP.

Come usare questo strumento

  1. Scegli un modello

    Seleziona Rigido, Con analytics, Permissivo o Personalizzato e attiva se serve la modalità Report-Only per ottenere un header di monitoraggio non bloccante.

  2. Regola le direttive

    Compila default-src, script-src, style-src, img-src, connect-src, frame-ancestors e gli altri campi, separando le sorgenti con spazi o virgole, e attiva upgrade-insecure-requests se necessario.

  3. Genera e copia

    Fai clic su «Genera la CSP», leggi gli avvisi, poi copia o esporta l’header HTTP, il tag meta o la policy grezza.

Casi d’uso

Prima CSP per un sito vetrina

Parti dal modello rigido, aggiungi solo i tuoi CDN e la tua API in script-src e connect-src, poi pubblicala prima in Report-Only per vedere cosa verrebbe bloccato.

Consentire Google Tag Manager e Analytics

Il modello «Con analytics» aggiunge googletagmanager.com e google-analytics.com alle direttive giuste, da completare con i tag che carichi davvero.

Risolvere un rilievo di un audit di sicurezza

Uno scanner segnala «Content-Security-Policy mancante» o «unsafe-inline consentito»: ricostruisci la policy e verifica che non resti alcun avviso prima di rimetterla in produzione.

Esempi

Policy CSP minima

Input

Modello: Personalizzato; Direttive: default-src = 'self', object-src = 'none', base-uri = 'self'; Modalità Report-Only: disattivata

Risultato

Header HTTP: Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self'. Avvisi: nessuno

Consigli e buone pratiche

  • Prova sempre la policy in Report-Only su tutte le pagine (moduli, checkout, back-office) prima di renderla bloccante: le violazioni compaiono nella console del browser.
  • Il tag meta ignora frame-ancestors, report-uri e sandbox e non supporta la modalità Report-Only: in questi casi usa l’header HTTP.
  • Non scrivere `self` senza apici: il browser lo interpreta come nome host e la sorgente non corrisponde a nulla.

Fonti e riferimenti

Domande frequenti

Una CSP impedisce gli attacchi XSS?

Non corregge la vulnerabilità, ma limita molto ciò che uno script iniettato può fare bloccando gli script inline e i domini non autorizzati. Una CSP con 'unsafe-inline' in script-src perde gran parte di questa protezione. OWASP la descrive come difesa in profondità, in aggiunta al corretto escaping dei dati.

Meglio l’header HTTP o il tag meta?

È preferibile l’header HTTP: si applica fin dall’inizio del caricamento e supporta tutte le direttive. Il tag meta è utile su un hosting statico senza accesso agli header, ma ignora frame-ancestors, report-uri e sandbox e protegge solo il contenuto che lo segue.

Come consento uno script inline senza unsafe-inline?

Aggiungi a script-src un nonce (`'nonce-valoreCasuale'`, rigenerato a ogni risposta e ripetuto nell’attributo nonce del tag) oppure l’hash dello script (`'sha256-…'`, Base64 dello SHA-256 del contenuto esatto). Puoi scrivere questi valori direttamente nel campo script-src; l’hash si calcola con un generatore SRI o di hash.

'self' include i sottodomini?

No. 'self' corrisponde solo alla stessa origine: stesso schema, host e porta. Per consentire cdn.example.com o tutti i sottodomini aggiungi esplicitamente `https://cdn.example.com` o `https://*.example.com`.

Come funziona la modalità Report-Only?

L’header Content-Security-Policy-Report-Only valuta la stessa policy senza bloccare nulla: il browser segnala le violazioni nella console e, se aggiungi una direttiva report-to o report-uri, le invia al tuo endpoint di raccolta. Così puoi mettere a punto la policy prima di passare all’header bloccante.

frame-ancestors sostituisce X-Frame-Options?

Sì, frame-ancestors è il sostituto moderno di X-Frame-Options e ha la precedenza nei browser che lo supportano: `frame-ancestors 'none'` equivale a DENY. Molti siti mantengono entrambi per i client più vecchi. Funziona solo nell’header HTTP, non in un tag meta.

Strumenti correlati

Strumenti simili o complementari a questo.

Strumenti simili

Genera HSTS, nosniff, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP e X-Frame-Options per Nginx o Apache.

Sicurezza e privacyUsa questo strumento

Genera l’attributo integrity SRI di uno script o di un foglio di stile da un contenuto, un file o un URL di CDN.

Sicurezza e privacyUsa questo strumento

Analizza gli header HTTP per verificare sicurezza, cache, CORS e cookie di una risposta.

Sicurezza e privacyUsa questo strumento