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

クロスサイト スクリプティング(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] をクリックします。

[Restore default] をクリックすることで、いつでもデフォルトの CSP ポリシーに戻すことができます。