content_security_policy

String
必須 いいえ
"content_security_policy": "default-src 'self'"

拡張機能はデフォルトでCSP(content security policy)が適用されています。デフォルトのポリシーの場合、ソースは <script> タグ及び <object> タグからのみロードできるように制限されており、 eval()のような潜在的に安全でない慣習(バッドプラクティス)は制限されます。この実装のより詳細は Default content security policyを見てください。

"content_security_policy" manifestキーを使用して、アドオンのセキュリティを緩くしたり逆にもっと制限することができます。  このキーは、Content-Security-Policy HTTPヘッダーと同じ方法で指定されます。 CSP  の文法の一般的な記述はCSPを使用するを見てください。

例として以下のような使用方法が可能です:

指定できるポリシーには以下のような制限があります。

  • ポリシーは少なくとも script-src ディレクティブ及び object-src ディレクティブを含む必要があり、 script-src ディレクティブは 'self'キーワードを含まなければならない。
  • 外部のソースを使用する場合はhttps: スキームを使用しなければならない。
  • public suffix list 内のドメインのリモートリソースはワイルドカードを使用禁止(よって "*.co.uk" と "*.blogspot.com" は許可されないが、 "*.foo.blogspot.com" は許可される)。
  • すべてのソースはホストを指定しなければならない。
  • blob:, filesystem:, moz-extension:https: スキームのリソースのみ指定することができる。
  • 'none', 'self''unsafe-eval' キーワードのみ指定することができる。【訳注: chromeと同様unsafe-inlineは許可されない】

有効な例

"https://example.com" からのリモートスクリプトを許可: ( 1 を見よ)

"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"

"jquery.com" のサブドメインからのリモートスクリプトを許可:

"content_security_policy": "script-src 'self' https://*.jquery.com; object-src 'self'"

eval() and friendsを許可:

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"

次のインラインスクリプトを許可: "<script>alert('Hello, world.');</script>":

"content_security_policy": "script-src 'self' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='; object-src 'self'"

他のポリシーはそのままだが、画像は拡張機能にパッケージされていることを要求する:

"content_security_policy": "script-src 'self'; object-src 'self'; img-src 'self'"

すべてのコンテンツが拡張機能にパッケージされていることを要求する:

"content_security_policy": "default-src 'self'"

無効な例

"object-src" ディレクティブが省略されているポリシー:

"content_security_policy": "script-src 'self' https://*.jquery.com;"

 "script-src" ディレクティブにおいて "self" キーワードが入っていないポリシー:

"content_security_policy": "script-src https://*.jquery.com; object-src 'self'"

リモートソーススキームが https ではない:

"content_security_policy": "script-src 'self' http://code.jquery.com; object-src 'self'"

ワイルドカードを通常のドメインに使用している:

"content_security_policy": "script-src 'self' https://*.blogspot.com; object-src 'self'"

リモートソーススキームは https だがホストがない:

"content_security_policy": "script-src 'self' https:; object-src 'self'"

ディレクティブに現在サポートしていない 'unsafe-inline'キーワードが含まれている:

"content_security_policy": "script-src 'self' 'unsafe-inline'; object-src 'self'"

1. 注記: 有効な例は正しい CSP のキーの使い方を表しますが、'unsafe-eval', 'unsafe-inline', リモートスクリプト、リモートソースを CSP に指定する拡張機能は、主なセキュリティの問題から、addons.mozilla.org に載せる拡張機能には許可されません。

ブラウザ互換性

 

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxOperaAndroid 版 Firefox
content_security_policyChrome 完全対応 ありEdge 完全対応 14
補足
完全対応 14
補足
補足 Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
Firefox 完全対応 48
補足
完全対応 48
補足
補足 Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.
Opera 完全対応 ありFirefox Android 未対応 なし
content_scriptsChrome 未対応 なし
補足
未対応 なし
補足
補足 See isolated_world.
Edge 未対応 なし
補足
未対応 なし
補足
補足 See isolated_world.
Firefox 完全対応 72
無効
完全対応 72
無効
無効 From version 72: this feature is behind the extensions.content_script_csp.enabled preference (needs to be set to true) and the extensions.content_script_csp.report_only preference (needs to be set to false). To change preferences in Firefox, visit about:config.
Opera 未対応 なし
補足
未対応 なし
補足
補足 See isolated_world.
Firefox Android 未対応 なし
extension_pagesChrome 未対応 なし
補足
未対応 なし
補足
補足 Available in Canary builds.
Edge 未対応 なしFirefox 完全対応 72
無効
完全対応 72
無効
無効 From version 72: this feature is behind the extensions.content_script_csp.enabled preference (needs to be set to true) and the extensions.content_script_csp.report_only preference (needs to be set to false). To change preferences in Firefox, visit about:config.
Opera 未対応 なしFirefox Android 未対応 なし
isolated_worldChrome 未対応 なし
補足
未対応 なし
補足
補足 Not yet implemented.
Edge 未対応 なし
補足
未対応 なし
補足
補足 Not yet implemented.
Firefox 未対応 なし
補足
未対応 なし
補足
補足 See content_scripts.
Opera 未対応 なしFirefox Android 未対応 なし
補足
未対応 なし
補足
補足 See content_scripts.
sandboxChrome 未対応 なし
補足
未対応 なし
補足
補足 Available in Canary builds.
Edge 未対応 なしFirefox 未対応 なし
補足
未対応 なし
補足
補足 Firefox does not support sandboxed scripts, so this key is not applicable.
Opera 未対応 なしFirefox Android 未対応 なし
補足
未対応 なし
補足
補足 Firefox does not support sandboxed scripts, so this key is not applicable.

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。