--- title: content_security_policy slug: Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy tags: - Add-ons - Extensions - WebExtensions translation_of: Mozilla/Add-ons/WebExtensions/manifest.json/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"
ディレクティブでスクリプトのハッシュを指定するeval()
やそれに類する機能を許可する、その方法は 'unsafe-eval'
を {{CSP("script-src")}} ディレクティブの中に入れる指定できるポリシーには以下のような制限があります。
'self'
キーワードを含まなければならない。https:
スキームを使用しなければならない。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'"
"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 に載せる拡張機能には許可されません。
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("webextensions.manifest.content_security_policy")}}