【HTML】Content-Security-Policyについての私的簡易まとめ【Cordova】

  • 2018年12月7日
  • HTML

タイトル通り、本日の記事は私のための備忘録です。
たまに読み方が分からなくなり、どういう設定なのか解読できないことがあるので、その対策としてまとめ。

参考にさせていただいたサイトはこちら。

Cordova アプリの Content-Security-Policy 設定について – Corredor
http://neos21.hatenablog.com/entry/2017/12/27/080000

 

まず、「Content-Security-Policy」とは「クロスサイトスクリプティング (XSS) やデータインジェクション攻撃などのような、特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤーです。」とのこと。
上記の参考サイトでは、「サーバサイドからクライアントサイドのブラウザに対して「このコンテンツはこういう範囲で扱っていいよ (それ以外の扱い方はしないでね)」というポリシーを伝えることで、クロスサイトスクリプティングなどの脆弱性攻撃を軽減するために設定する。」とありました。
こちらの説明の方が分かりやすいですね。

では早速簡易まとめ。
まず、default-srcです。
これは名前のとおり、基本的な設定を指定することができ、‘self’ は自身のホストを、* はすべてのホストへのアクセスが許容されます。
なお、Cordova の環境の場合、プラグインが動作するためには gap: プロトコルが必要とのことなので、必要に応じて gap: も追加します。

記述方法はそれ以外も同じで、style-srcimg-srcmedia-src など、それぞれ定義したい項目ごとに記述します。

ちなみに、私の環境では下記のような指定になっています。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:; connect-src *;">

‘unsafe-inline’ はインラインのCSSやJavaScript を有効にするもので、これがないと CSS、JavaScript が有効にならないので追加します。

とりあえずは、このあたりまで分かっていれば基本的なところだけは大丈夫のはず…?
下記のサイトに記述例が記載されている箇所があるので、こちらも参考になります。

コンテンツセキュリティポリシー (CSP) – HTTP|MDN
https://developer.mozilla.org/ja/docs/Web/HTTP/CSP

 

以上、Content-Security-Policy についての簡易まとめでした。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG