コンテンツセキュリティポリシー(CSP)指令
Adobe Target実装にContent Security Policy (CSP)を使用している場合、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は、「adobe.tt.omtrdc.net」が指すAdobe Target エッジサーバーに個人情報(PII)またはその他の機密情報を保存しません。
これにより、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にサイトを埋め込むのを防ぐには、「自分」のみに制限できます。
次に例を示します。
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'".