Configurazione di una CSP

Per limitare le risorse consentite da un browser, viene utilizzato un Content Security Policy (CSP). La CSP può anche limitare le funzionalità delle risorse di script e stili. Adobe Experience Platform Web SDK non richiede una CSP, ma l'aggiunta di una CSP può ridurre la superficie di attacco per prevenire attacchi dannosi.

La CSP deve riflettere il modo in cui Platform Web SDK viene distribuito e configurato. La seguente CSP mostra quali modifiche potrebbero essere necessarie per il corretto funzionamento dell’SDK. È probabile che saranno necessarie ulteriori impostazioni CSP, a seconda dell'ambiente specifico.

Esempio di criteri di protezione dei contenuti

Gli esempi seguenti mostrano come configurare una CSP.

Consenti accesso al dominio periferico

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 prime parti, EDGE-DOMAIN deve essere sostituito con *.adobedc.net. Se la migrazione dei visitatori è attivata utilizzando idMigrationEnabled, la direttiva connect-src deve includere anche *.demdex.net.

Usa NONCE per consentire l'allineamento degli elementi di script e di stile

Platform Web SDK può modificare il contenuto della pagina e deve essere approvato per creare script in linea e tag di stile. A questo scopo, Adobe consiglia di utilizzare un nonce per la direttiva CSP default-src. Un nonce è un token casuale crittografato generato dal server che viene generato una volta per ogni visualizzazione di pagina univoca.

default-src 'nonce-SERVER-GENERATED-NONCE'

Inoltre, la voce CSP deve essere aggiunta come attributo al tag script Platform Web SDK base code. 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 viene utilizzata una nonce, l'altra opzione consiste nell'aggiungere unsafe-inline alle direttive script-src e style-src CSP:

script-src 'unsafe-inline'
style-src 'unsafe-inline'
NOTA

Adobe not consiglia di specificare unsafe-inline perché consente l'esecuzione di qualsiasi script sulla pagina, limitando i vantaggi della CSP.

In questa pagina