Content-Security-Policy(CSP) 概要


  • Content-Security-Policy(CSP) の概要をまとめる。

Content-Security-Policy(CSP) とは?

  • サーバーが、ブラウザに対して自身のセキュリティポリシーを表明するための仕組みを指す。
    • スクリプトや画像の実行可能範囲を指定する。

導入が必要な理由

  • クロスサイトスクリプティング(XSS)対策
    • XSSを目的とした外部のスクリプトコードが埋め込まれた際の影響を軽減する。

構文

Content-Security-Policy: <policy-directive>; <policy-directive>
  • <policy-directive> = <directive> <value> 内部の句読点なし

    • directive種別 : 許可するリソースの種類(参考)
    • value : 'self'(同一ドメイン、同一ポート※サブドメイン除く)や特定のドメインを指定
  • 例1:自ドメインリソースのみを読み込み許可する場合

  Content-Security-Policy: default-src 'self'
  • 例2 : 自ドメインと指定ドメインのリソースのみを読み込み許可する場合
  Content-Security-Policy: default-src 'self' *.example.com

設定の流れ

  1. Web アプリが利用する各リソースについて、許可するオリジンのリストを定義する。

  2. サーバーから1.で定義した制御設定を Content-Security-PolicyHTTP ヘッダーに設定してを返却させる。
    metaタグに指定することも可能。

Apacheでの設定方法

  • 設定ファイル(.confファイルなど)に以下のように、記載を追加する。
Header set Content-Security-Policy "default-src 'self'; script-src 'self' *.example.com"

参考情報