コンテンツセキュリティポリシー(CSP)指令
コンテンツセキュリティポリシー(CSP)を Adobe Target の実装に使用する場合、at.js 2.1 以降を使用する際は以下の CSP 指令を追加する必要があります。
connect-src
と*.tt.omtrdc.net
許可リスト。Target エッジへのネットワークリクエストを許可するために必要です。style-src unsafe-inline
をインストールします。事前非表示およびちらつき制御に必要です。script-src unsafe-inline
HTML オファーの一部となる JavaScript の実行を許可するために必要です。
よくある質問(FAQ)
セキュリティポリシーに関する以下の FAQ を参照してください。
クロスオリジンリソース共有(CORS)と Flash クロスドメインポリシーには、セキュリティの問題がありますか?
CORS ポリシーを実装する推奨方法は、信頼済みのドメインの許可リストを介して、アクセスを必要とする信頼されたオリジンだけにアクセスを許可することです。Flash クロスドメインポリシーについても同じことがいえます。一部の Target のお客様は、Target でのドメインに対するワイルドカード文字の使用を心配しています。 ユーザーがアプリケーションにログインし、ポリシーで許可されたドメインを訪問した場合に、そのドメインで実行されている悪意のあるコンテンツがアプリケーションから機密コンテンツを取得し、ログインしているユーザーのセキュリティコンテキスト内でアクションを実行する可能性があるという懸念があります。 これは、一般に、クロスサイトリクエストフォージェリ(CSRF)と呼ばれます。
ただし、Target 実装では、これらのポリシーは、セキュリティの問題にはならないはずです。
「adobe.tt.omtrdc.net」は、アドビが所有するドメインです。Adobe Target は、テストとパーソナライゼーションのツールです。Target は、認証を必要とせずに、どこからでもリクエストを受け取り、処理できることが期待されます。これらのリクエストには、A/B テスト、レコメンデーション、コンテンツのパーソナライゼーションに使用されるキーと値のペアが含まれています。
Adobeは、個人を特定できる情報(PII)やその他の機密情報を、「adobe.tt.omtrdc.net」で指定される Adobe Target エッジサーバー上に格納しません。
これにより、JavaScript 呼び出しを使用してどのドメインからでも Target にアクセスできることが期待されます。このアクセスを許可する唯一の方法は、ワイルドカードと共に「Access-Control-Allow-Origin」を適用することです。
外部ドメインの下でサイトが iFrame として埋め込まれるのを許可または禁止するにはどうすればよいですか?
Visual Experience Composer (VEC)が web サイトを iFrame に埋め込めるようにするには、web サーバー設定で CSP (設定されている場合)を変更する必要があります。 ドメイン Adobe、許可リストに登録して設定する必要があります。
セキュリティ上の理由から、サイトが外部ドメインの下に iFrame として埋め込まれないようにする場合があります。
次の節では、VEC による iFrame へのサイトの埋め込みを許可または禁止する方法について説明します。
VEC による iFrame へのサイトの埋め込みを許可
VEC を使用して web サイトを iFrame に埋め込む最も簡単な解決策は、最も広いワイルドカードである *.adobe.com
を許可することです。
次に例を示します。
Content-Security-Policy: frame-ancestors 'self' *.adobe.com
次の図のように(クリックすると拡大できます)。
実際の Adobe サービスのみを許可することもできます。 このシナリオは、*.experiencecloud.adobe.com + https://experiencecloud.adobe.com
を使用することで達成できます。
次に例を示します。
Content-Security-Policy: frame-ancestors 'self' https://*.experiencecloud.adobe.com https://experiencecloud.adobe.com https://experience.adobe.com
次の図のように(クリックすると拡大できます)。
会社のアカウントに対する最も厳しいアクセスは、https://<Client Code>.experiencecloud.adobe.com https://experience.adobe.com
を使用して実現できます。<Client Code>
は特定のクライアントコードを表します。
次に例を示します。
Content-Security-Policy: frame-ancestors 'self' https://ags118.experiencecloud.adobe.com https://experience.adobe.com
次の図のように(クリックすると拡大できます)。
Content-Security-Policy: frame-ancestors 'self' *.adobe.com *.assets.adobedtm.com;
VEC が iFrame にサイトを埋め込まないようにする
VEC が iFrame にサイトを埋め込まないようにするには、「self」のみに制限します。
次に例を示します。
Content-Security-Policy: frame-ancestors 'self'
次の図に示します(クリックすると拡大できます)。
次のエラーメッセージが表示されます。
Refused to frame 'https://kuehl.local/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".