Configurazione di un CSP
A Informativa sulla sicurezza dei contenuti (CSP) viene utilizzato per limitare le risorse che un browser può utilizzare. I CSP possono anche limitare la funzionalità delle risorse di script e di stile. Adobe Experience Platform Web SDK non richiede un CSP, ma l’aggiunta di un CSP può ridurre la superficie di attacco per prevenire attacchi dannosi.
I CSP devono riflettere come Platform Web SDK è implementato e configurato. I CSP seguenti mostrano le modifiche necessarie per il corretto funzionamento dell’SDK. A seconda dell’ambiente specifico, potrebbero essere necessarie ulteriori impostazioni CSP.
Esempio di criteri per la sicurezza dei contenuti
Gli esempi seguenti mostrano come configurare un CSP.
Consenti accesso al dominio Edge
default-src 'self';
connect-src 'self' EDGE-DOMAIN
Nell’esempio precedente, EDGE-DOMAIN
deve essere sostituito con il dominio di prime parti. Il dominio di prime parti è configurato per edgeDomain impostazione. Se non è stato configurato alcun dominio di prima parte, EDGE-DOMAIN
deve essere sostituito con *.adobedc.net
. Se la migrazione dei visitatori è attivata con idMigrationEnabled, il connect-src
La direttiva deve inoltre includere *.demdex.net
.
Utilizzare NONCE per consentire gli elementi di script e di stile in linea
Platform Web SDK può modificare il contenuto della pagina e deve essere approvato per creare tag di script e di stile in linea. A questo scopo, l’Adobe consiglia di utilizzare un nonce per default-src Direttiva CSP. Un nonce è un token casuale crittograficamente sicuro generato dal server e generato una volta per ogni visualizzazione di pagina univoca.
default-src 'nonce-SERVER-GENERATED-NONCE'
Inoltre, il nonce CSP deve essere aggiunto come attributo al Platform Web SDK codice di base tag script. Platform Web SDK utilizzerà quindi tale nonce quando si aggiungono tag di script o di stile in linea alla pagina:
<script nonce="SERVER-GENERATED-NONCE">
!function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS||
[]).push(o),n[o]=function(){var u=arguments;return new Promise(
function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})}
(window,["alloy"]);
</script>
Se non si utilizza un nonce, l’altra opzione consiste nell’aggiungere unsafe-inline
al script-src
e style-src
Direttive CSP:
script-src 'unsafe-inline'
style-src 'unsafe-inline'
unsafe-inline
perché consente l’esecuzione di qualsiasi script sulla pagina, il che limita i vantaggi dei CSP.Configurare un CSP per la messaggistica in-app in-app-messaging
Quando si configura Messaggistica Web in-app, devi includere la seguente direttiva nel CSP:
default-src blob:;