マニフェスト - サンドボックス

サンドボックス化された固有の送信元で配信される拡張機能ページのコレクションを定義します。「 拡張機能のサンドボックス化されたページで使用されるコンテンツ セキュリティ ポリシーは、 "content_security_policy" キー

サンドボックスの利用には、次の 2 つの影響があります。

  1. サンドボックス化されたページでは、拡張機能 API にアクセスしたり、 サンドボックス化されていないページ(postMessage() を使用して通信する場合があります)。
  2. サンドボックス化されたページは、他のページで使用されているコンテンツ セキュリティ ポリシー(CSP)の対象にはなりません (独自の CSP 値があります)。たとえば、 インライン スクリプトと eval() を使用します。

たとえば、2 つの拡張機能ページをサンドボックスで 2 つの拡張機能として カスタム CSP:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

指定しない場合、デフォルトの "content_security_policy" 値は sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self'; です。

CSP の値を指定してサンドボックスをさらに制限することもできますが、それには "sandbox" ディレクティブであり、allow-same-origin トークンを含めてはなりません(HTML5 サンドボックス トークンの仕様を確認してください。

指定する必要があるのは、ウィンドウまたはフレームで読み込まれると想定されるページのみです。リソース サンドボックス化されたページで使用されるすべてのプロパティ(スタイルシート、JavaScript ソースファイルなど)は、 pages リストが埋め込みのフレームのサンドボックスを使用するため。

詳しくは、Chrome 拡張機能での eval() の使用をご覧ください。 サンドボックス化ワークフローにより、他の方法では実行に問題となるライブラリを使用できるようになります。 拡張機能のデフォルトのコンテンツ セキュリティ ポリシー