Configuration d’un fichier CSP

Une stratégie de sécurité de contenu (CSP) est utilisée pour restreindre les ressources qu'un navigateur est autorisé à utiliser. Le CSP peut également limiter la fonctionnalité des ressources de script et de style. Adobe Experience Platform Web SDK n'a pas besoin d'un CSP, mais l'ajout d'un peut réduire la surface d'attaque pour prévenir les attaques malveillantes.

Le CSP doit refléter la façon dont Platform Web SDK est déployé et configuré. Le fichier CSP suivant présente les modifications nécessaires au bon fonctionnement du SDK. D’autres paramètres CSP seront probablement requis, en fonction de votre environnement spécifique.

Exemple de stratégie de sécurité du contenu

Les exemples suivants montrent comment configurer un fichier CSP.

Autoriser l'accès au domaine Edge

default-src 'self';
connect-src 'self' EDGE-DOMAIN

Dans l’exemple ci-dessus, EDGE-DOMAIN doit être remplacé par le domaine propriétaire. Le domaine propriétaire est configuré pour le paramètre edgeDomain. Si aucun domaine propriétaire n'a été configuré, EDGE-DOMAIN doit être remplacé par *.adobedc.net. Si la migration du visiteur est activée à l'aide de idMigrationEnabled, la directive connect-src doit également inclure *.demdex.net.

Utiliser NONCE pour autoriser les éléments de script et de style intégrés

Platform Web SDK peut modifier le contenu de la page et doit être approuvé pour créer des balises de style et de script intégrées. Pour ce faire, l’Adobe recommande d’utiliser un nonce pour la directive CSP default-src. Un nonce est un jeton aléatoire puissant et cryptographiquement généré par le serveur et généré une fois par vue de page unique.

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

En outre, le numéro CSP doit être ajouté en tant qu’attribut à la balise de script Platform Web SDK code de base. Platform Web SDK utilisera ensuite cette valeur nonce lors de l’ajout de balises de script ou de style intégrées à la page :

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

Si un nonce n'est pas utilisé, l'autre option consiste à ajouter unsafe-inline aux directives CSP script-src et style-src :

script-src 'unsafe-inline'
style-src 'unsafe-inline'
REMARQUE

L’Adobe ne pas recommande de spécifier unsafe-inline, car il permet l’exécution d’un script sur la page, ce qui limite les avantages du CSP.

Sur cette page