Documentazione

Indice dei contenuti

Come configurare il Content Security Policy per consentire l’esecuzione degli script di iubenda

Questa guida è destinata agli amministratori di siti web che utilizzano il Content Security Policy (CSP).

Il Content Security Policy consente agli amministratori di specificare i domini che il browser deve considerare come fonti valide di script eseguibili: un browser compatibile con CSP eseguirà solo script provenienti da domini autorizzati, ignorando tutti gli altri script.

Come puoi immaginare, questo può causare alcuni problemi agli script dei nostri Termini e Condizioni, Privacy e Cookie Policy, Cookie Solution e Consent Solution. Fortunatamente, questi problemi sono facilmente risolvibili.

Come risolvere i conflitti tra il CSP e iubenda

Ecco come autorizzare gli script dei nostri Termini e Condizioni, Privacy e Cookie Policy, Cookie Solution e Consent Solution in modo che possano funzionare correttamente con il CSP:

1. Aggiungi un nonce agli script in linea

Prima di tutto è necessario sfruttare un nonce (numero casuale da usare una sola volta), dando al tag script di iubenda un attributo nonce. Il valore del nonce deve corrispondere a quello dell’elenco delle fonti attendibili. Per esempio:

<script type="text/javascript" nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
  //codice di iubenda
</script>

Ora, aggiungi il nonce alla tua direttiva script-src associata alla parola chiave nonce-:

Content-Security-Policy: script-src 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa'

Quindi, ad esempio, il codice di integrazione della Cookie Solution diventerà:

<script type="text/javascript" nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": 12345678
        "cookiePolicyId": 12345678
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Si prega di notare che il nonce è stato aggiunto solo allo script in linea. Vedremo come gestire gli script esterni poco sotto.

Importante

Ricorda che i nonce vanno rigenerati ad ogni caricamento di pagina e che non dev’essere possibile prevederli.

2. Autorizza il dominio iubenda.com per gli script esterni

Ora è necessario autorizzare il dominio iubenda.com (e i suoi sottodomini) così da permettere il caricamento degli script lì contenuti. Ecco come configurare il Content Security Policy:

Content-Security-Policy: 
  default-src 'self'; 
  script-src 'self' *.iubenda.com 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa' 'unsafe-eval'; 
  connect-src *.iubenda.com; 
  style-src 'unsafe-inline' *.iubenda.com; 
  frame-src *.iubenda.com *.consensu.org; 
  img-src *.iubenda.com data:

E questo è tutto. Per ulteriori informazioni sul CSP e sui casi d’uso comune, visita la guida dedicata sul Mozilla Developer Network.