Configurazione di un CSP

Criteri 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.

Il CSP deve riflettere la modalità di distribuzione e configurazione di Platform Web SDK. 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 l'impostazione edgeDomain. 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, la direttiva connect-src deve includere anche *.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 tale scopo, l'Adobe consiglia di utilizzare un nonce per la direttiva CSP default-src. 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 tag di script Platform Web SDK codice base. Platform Web SDK utilizzerà quindi il nonce quando aggiungerà 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 alle direttive CSP script-src e style-src:

script-src 'unsafe-inline'
style-src 'unsafe-inline'
NOTE
L'Adobe not consiglia di specificare unsafe-inline perché consente l'esecuzione di qualsiasi script nella pagina, limitando i vantaggi del CSP.

Configurare un CSP per la messaggistica in-app in-app-messaging

Quando configuri Messaggistica Web in-app, devi includere la seguente direttiva nel CSP:

default-src  blob:;
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636