コンテンツ セキュリティ ポリシーの構成

このページは ApigeeApigee ハイブリッドに適用されます。

Apigee Edge のドキュメントを表示する。

クロスサイト スクリプティング(XSS)やその他のコード インジェクション攻撃からポータルを守るため、ポータルのすべてのページに対してコンテンツ セキュリティ ポリシー(CSP)を構成できます。CSP は、スクリプト、スタイル、画像などのコンテンツの信頼できるソースを定義します。ポリシーを構成すると、信頼できないソースから読み込まれたコンテンツはブラウザによってブロックされます。

CSP は、次のように Content-Security-Policy HTTP レスポンス ヘッダーとしてポータルのすべてのページに追加されます。

Content-Security-Policy: policy

ポリシーの定義には、W3C サイトのコンテンツ セキュリティ ポリシー ディレクティブで定義されたディレクティブを使用します。

CSP ヘッダーを有効にすると、デフォルトで次の CSP ディレクティブが定義されます。

default-src 'unsafe-eval' 'unsafe-inline' * data:

default-src ディレクティブは、ディレクティブが構成されていないリソースタイプにデフォルト ポリシーを構成します。

デフォルト ディレクティブに含まれるポリシーの説明を以下の表に示します。

ポリシー アクセス
'unsafe-inline' インライン リソース(インライン <script> 要素、javascript: URL、インライン イベント ハンドラ、インライン <style> 要素など)。: ポリシーは一重引用符で囲む必要があります。
'unsafe-eval' JavaScript eval() や、文字列からコードを作成するために使用される同様のメソッドなど、安全でない動的コード評価。: ポリシーは一重引用符で囲む必要があります。
* (wildcard) data:blob:filesystem: スキームを除くすべての URL。
data: データスキームを介して読み込まれるリソース(Base64 エンコード画像など)。

以下に、特定のリソースタイプを制限するように CSP を構成する例を示します。

ポリシー アクセス
default-src 'none' ディレクティブが構成されていないリソースタイプにはアクセスできません。
img-src * 任意のソースからの画像 URL。
media-src https://example.com/ example.com ドメインからの HTTPS 経由の動画または音声の URL。
script-src *.example.com example.com のサブドメインからの任意のスクリプトの実行。
style-src 'self' css.example.com サイトのオリジンまたは css.example.com ドメインからの任意のスタイルの適用。

コンテンツ セキュリティ ポリシーを構成するには:

  1. [Publish] > [Portals] を選択し、目的のポータルを選択します。
  2. 上部のナビゲーション バーにあるプルダウン メニューから [Settings] を選択します。
  3. または、ポータルのランディング ページで [Settings] をクリックします。
  4. [Security] タブをクリックします。
  5. [Enable content security policy] をクリックします。
  6. CSP を構成するか、デフォルトをそのまま使用します。
  7. [Save] をクリックします。

デフォルトの CSP ポリシーは、[Restore default] をクリックしていつでも復元できます。