マニフェスト - コンテンツ セキュリティ ポリシー

拡張機能が使用できるスクリプト、スタイル、その他のリソースに関する制限を指定する、ウェブ プラットフォームのコンテンツ セキュリティ ポリシーを含むオプションのマニフェスト キー。このマニフェスト キー内で、拡張機能ページとサンドボックス化された拡張機能ページの両方に個別のオプション ポリシーを定義できます。

「拡張機能ページ」ポリシーは拡張機能内のページとワーカーのコンテキストに適用されます。これには、拡張機能のポップアップ、バックグラウンド ワーカー、拡張機能によって開かれた HTML ページまたは iframe のタブが含まれます。サンドボックス ポリシーは、マニフェストでサンドボックス ページとして指定されたすべてのページに適用されます。

デフォルト ポリシー

ユーザーがコンテンツ セキュリティ ポリシーをマニフェストで定義していない場合、拡張機能ページとサンドボックス化された拡張機能ページの両方にデフォルトのプロパティが使用されます。

これらのデフォルトは、マニフェストで次のポリシーを指定するのと同じです。

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

この場合、拡張機能は独自にパッケージ化したリソースからのみ、ローカル スクリプトとオブジェクトを読み込みます。WebAssembly は無効になり、拡張機能はインライン JavaScript を実行せず、文字列を実行コードとして評価できなくなります。サンドボックス ページを追加すると、拡張機能の外部からのスクリプトを評価するための権限が緩和されます。

カスタマイズされた最小限のコンテンツ セキュリティ ポリシー

デベロッパーは、プロジェクトのニーズに応じて、拡張機能のルールを追加または削除したり、必要最小限のコンテンツ セキュリティ ポリシーを使用したりできます。

広告表示オプションのページに関するポリシー

Chrome では、拡張機能のページに最小限のコンテンツ セキュリティ ポリシーが適用されます。これは、マニフェストで次のポリシーを指定するのと同じです。

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

extension_pages ポリシーは、この最小値を超えて緩和することはできません。つまり、'unsafe-eval'script-src に追加するなど、他のスクリプト ソースをディレクティブに追加することはできません。許可されていないソースを拡張機能のポリシーに追加すると、Chrome のインストール時に次のようなエラーがスローされます。

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

サンドボックス ページに関するポリシー

サンドボックス ページでは、拡張機能 API にアクセスしたり、サンドボックス化されていないページに直接アクセスしたりできないため、サンドボックス化されたページのデフォルト ポリシーは、拡張ページよりもはるかに寛大です。サンドボックスのコンテンツ セキュリティ ポリシーは、必要に応じてカスタマイズできます。