CSP について私が知っていることから、これは構文的に正しいように見えます。CSPに関するHTML5 Rocks の記事は、次のように構文に同意します。
script-src https://host1.com https://host2.com
両方のオリジンを有効として正しく指定します。
ただし、問題は次のいずれかである可能性があります。
この CSPは、およびを含むすべてのサブドメインを許可しません。これらのサブドメインのホスト名を明示的に追加するか、 を使用してすべてのサブドメインを許可できます。www.foo.com
www.example.com
https://*.foo.com
スクリプト リクエストのいずれかが許可されていないドメインにリダイレクトされる場合、リクエストは失敗します。たとえば、https://example.com/foo.js
または(許可されていないオリジン) または (許可され301
ていないサブドメイン) に302
リダイレクトする場合、要求は仕様に従って失敗します。https://notpermitted.com/foo.js
https://www.example.com/foo.js
ユーザー エージェントが URI を取得するたびに (リダイレクトをたどる場合を含む)... URI が許可されたスクリプト ソースと一致しない場合、ユーザー エージェントは空の HTTP 400 応答を受信したかのように動作する必要があります...
編集:
念のために言っておきますが、はい、Chrome 拡張機能は複数の HTTPS オリジンをホワイトリストに登録できます。これをテストするための簡単な拡張機能を作成できます。
マニフェスト.json
{
"name":"CSP Test",
"version":"1.0",
"manifest_version":2,
"browser_action":{
"default_popup":"csp_test.html"
},
"content_security_policy": "script-src 'self' https://www.iana.org https://ajax.googleapis.com; object-src 'self'"
}
csp_test.html
<script src="https://www.iana.org/_js/2013.1/jquery.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="csp_test.js"></script>
csp_test.js
alert(jQuery)
alert(jQuery.ui)
この拡張機能は、リモート ドメインから jQuery および jQuery UI を読み込みます。いずれかのオリジンを CSP から削除するundefined
と、ライブラリの 1 つがロードに失敗したことを示す " " アラートが表示されます。