CSP の設定

最終更新日: 2024-02-22
  • トピック:
  • Web SDK
    このトピックの詳細を表示
  • 作成対象:
  • Developer
    User
    Admin
    Leader

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. 訪問者の移行が idMigrationEnabledconnect-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'
メモ

Adobeが実行する not ~を指定することを勧める unsafe-inline これは、CSP のメリットが制限されるページ上で任意のスクリプトを実行できるからです。

アプリ内メッセージ用の CSP の設定

設定時に Web アプリ内メッセージの場合、CSP に次のディレクティブを含める必要があります。

default-src  blob:;

このページ