Konfigurieren einer CSP

Eine Content Security Policy (CSP) wird verwendet, um die Ressourcen zu beschränken, die ein Browser verwenden darf. Die CSP kann auch die Funktionalität von Skript- und Stilressourcen einschränken. Das Adobe Experience Platform Web SDK benötigt keine CSP. Durch Hinzufügen einer kann die Angriffsfläche jedoch reduziert werden, um schädliche Angriffe zu verhindern.

Das CSP muss die Bereitstellung und Konfiguration von Platform Web SDK widerspiegeln. Die folgende CSP zeigt, welche Änderungen erforderlich sein können, damit das SDK ordnungsgemäß funktioniert. Abhängig von Ihrer spezifischen Umgebung sind wahrscheinlich zusätzliche CSP-Einstellungen erforderlich.

Beispiel für eine Content-Sicherheitsrichtlinie

Die folgenden Beispiele zeigen, wie Sie eine CSP konfigurieren.

Zugriff auf die Edge-Domäne zulassen

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

Im obigen Beispiel sollte EDGE-DOMAIN durch die Erstanbieterdomäne ersetzt werden. Die Erstanbieterdomäne ist für die Einstellung edgeDomain konfiguriert. Wenn keine Erstanbieterdomäne konfiguriert wurde, sollte EDGE-DOMAIN durch *.adobedc.net ersetzt werden. Wenn die Besuchermigration mit idMigrationEnabled aktiviert ist, muss die connect-src -Direktive auch *.demdex.net enthalten.

Verwenden Sie NONCE, um Inline-Skript- und Stilelemente zuzulassen

Platform Web SDK kann den Seiteninhalt ändern und muss genehmigt werden, um Inline-Skript- und Stil-Tags zu erstellen. Um dies zu erreichen, empfiehlt Adobe die Verwendung einer Nonce für die CSP-Direktive default-src . Eine Nonce ist ein Server-generiertes kryptografisch starkes zufälliges Token, das einmal pro eindeutigem Seitenaufruf generiert wird.

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

Darüber hinaus muss die CSP-Nonce als Attribut zum Skript-Tag Platform Web SDK Basis-Code hinzugefügt werden. Platform Web SDK verwendet diese Nonce dann beim Hinzufügen von Inline-Skript- oder Stil-Tags zur Seite:

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

Wenn keine Nonce verwendet wird, besteht die andere Option darin, der CSP-Direktive script-src und style-src den Wert unsafe-inline hinzuzufügen:

script-src 'unsafe-inline'
style-src 'unsafe-inline'
NOTE
Adobe empfiehlt nicht, unsafe-inline anzugeben, da es die Ausführung eines Skripts auf der Seite ermöglicht, wodurch die Vorteile des CSP eingeschränkt werden.

CSP für In-App-Nachrichten konfigurieren in-app-messaging

Wenn Sie Web In-App Messaging konfigurieren, müssen Sie die folgende Anweisung in Ihre CSP aufnehmen:

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