このページは Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する。
クロスサイト スクリプティング(XSS)やその他のコード インジェクション攻撃からポータルを守るため、ポータルのすべてのページに対してコンテンツ セキュリティ ポリシー(CSP)を構成できます。CSP は、スクリプト、スタイル、画像などのコンテンツの信頼できるソースを定義します。ポリシーを構成すると、信頼できないソースから読み込まれたコンテンツはブラウザによってブロックされます。
CSP は、次のように Content-Security-Policy
HTTP レスポンス ヘッダーとしてポータルのすべてのページに追加されます。
Content-Security-Policy: policy
ポリシーの定義には、W3C サイトの Content Security Policy Directives で定義されたディレクティブを使用します。
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 ドメインからの任意のスタイルの適用。 |
コンテンツ セキュリティ ポリシーを構成するには:
Cloud コンソールの UI
Cloud コンソールの Apigee で、[配布] > [ポータル] ページに移動します。
ポータルをクリックします。
ナビゲーション メニューの [設定] をクリックします。
[セキュリティ] タブをクリックします。
[Enable content security policy] をクリックします。
CSP を構成するか、デフォルトをそのまま使用します。
[保存] をクリックします。
従来の UI
- [Publish] > [Portals] を選択し、目的のポータルを選択します。
- 上部のナビゲーション バーにあるプルダウン メニューから [Settings] を選択します。
- または、ポータルのランディング ページで [Settings] をクリックします。
- [Security] タブをクリックします。
- [Enable content security policy] をクリックします。
- CSP を構成するか、デフォルトをそのまま使用します。
- [Save] をクリックします。
[Restore default] をクリックすることで、いつでもデフォルトの CSP ポリシーに戻すことができます。