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 zeigen, wie Platform Web SDK bereitgestellt und konfiguriert wird. 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 mithilfe von 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 base code hinzugefügt werden. Platform Web SDK verwendet diese Nonce dann, wenn Inline-Skript- oder Stil-Tags zur Seite hinzugefügt werden:

<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, unsafe-inline zu den CSP-Direktiven script-src und style-src hinzuzufügen:

script-src 'unsafe-inline'
style-src 'unsafe-inline'
HINWEIS

Adobe empfiehlt die Angabe von nicht unsafe-inline, da es die Ausführung eines Skripts auf der Seite ermöglicht, wodurch die Vorteile des CSP eingeschränkt werden.

Auf dieser Seite