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, Privacy Controls and Cookie Solution e Consent Solution. Fortunatamente, questi problemi sono facilmente risolvibili.
Ecco come autorizzare gli script dei nostri Termini e Condizioni, Privacy e Cookie Policy, Privacy Controls and Cookie Solution e Consent Solution in modo che possano funzionare correttamente con il CSP:
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 di Privacy Controls and 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.
Ricorda che i nonce vanno rigenerati ad ogni caricamento di pagina e che non dev’essere possibile prevederli.
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;
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.