タイトル通り、本日の記事は私のための備忘録です。
たまに読み方が分からなくなり、どういう設定なのか解読できないことがあるので、その対策としてまとめ。
参考にさせていただいたサイトはこちら。
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-src
、img-src
、media-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 についての簡易まとめでした。