CSP の設定
A コンテンツセキュリティポリシー (CSP) は、ブラウザーが使用できるリソースを制限するために使用されます。 また、CSP はスクリプトおよびスタイルリソースの機能を制限することもできます。 Adobe Experience Platform Web SDK には CSP は必要ありませんが、CSP を追加すると、悪意のある攻撃に対する攻撃の対象が減少し、
CSP は、 Platform Web SDK がデプロイされ、設定されている。 次の CSP は、SDK が正しく機能するために必要となる可能性のある変更を示しています。 特定の環境に応じて、追加の CSP 設定が必要になる場合があります。
コンテンツセキュリティポリシーの例
次の例は、CSP の設定方法を示しています。
Edge ドメインへのアクセスを許可
default-src 'self';
connect-src 'self' EDGE-DOMAIN
上記の例では、 EDGE-DOMAIN はファーストパーティドメインに置き換える必要があります。 ファーストパーティドメインは、 edgeDomain 設定。 ファーストパーティドメインが設定されていない場合、 EDGE-DOMAIN は、 *.adobedc.net. 訪問者の移行が idMigrationEnabled、 connect-src 指令も含める必要があります *.demdex.net.
NONCE を使用してインラインスクリプトおよびスタイル要素を許可します
Platform Web SDK でページコンテンツを変更できるので、インラインスクリプトおよびスタイルタグの作成を承認する必要があります。 これを実現するために、Adobeでは、に nonce を使用することをお勧めします。 default-src CSP ディレクティブ。 nonce は、一意のページビューごとに 1 回生成される、サーバー生成の暗号的に強いランダムトークンです。
default-src 'nonce-SERVER-GENERATED-NONCE'
さらに、CSP nonce を属性として Platform Web SDK ベースコード スクリプトタグ。 Platform Web SDK その後、ページにインラインスクリプトまたはスタイルタグを追加する際に、そのナンスを使用します。
<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>
nonce を使用しない場合、他のオプションは unsafe-inline から script-src および style-src CSP ディレクティブ:
script-src 'unsafe-inline'
style-src 'unsafe-inline'
unsafe-inline これは、CSP のメリットが制限されるページ上で任意のスクリプトを実行できるからです。アプリ内メッセージ用の CSP の設定 in-app-messaging
設定時に Web アプリ内メッセージの場合、CSP に次のディレクティブを含める必要があります。
default-src blob:;