web-dev-qa-db-ja.com

Cordovaコンテンツセキュリティポリシー

Cordovaアプリがあり、アップグレード(5.0.0)した後、リソースをまったく呼び出すことができません。ホワイトリストプラグインを追加し、次のタグをindex.htmlに追加しました

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.Azure-mobile.net localhost:1337 *.ajax.aspnetcdn.com">

次のエラーが表示されました。

スクリプト ' http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.2.5.min.js 'のロードを拒否しました。次のコンテンツセキュリティポリシーディレクティブに違反しているためです: " script-src 'self' 'unsafe-inline' 'unsafe-eval' * .Azure-mobile.net localhost:1337 * .ajax.aspnetcdn.com "。

次のコンテンツセキュリティポリシーディレクティブに違反するため、スクリプト ' http:// localhost:1337/vorlon.js 'のロードを拒否しました: "script-src 'self' 'unsafe-inline' 'unsafe- eval '* .Azure-mobile.net localhost:1337 * .ajax.aspnetcdn.com "。

私はすべてを許可するはずのデフォルトポリシーを試しましたが、それでも運はありません。

また、config.xmlファイルに次を追加しました

<access Origin="*" />
<allow-navigation href="*" />

そして、次のプラグインを使用します。

C:\Projects\TavlaApp>cordova plugin
com.Microsoft.Azure-mobile-services 1.2.7 "Windows Azure Mobile Services"
cordova-plugin-whitelist 1.0.1-dev "Whitelist"
nl.x-services.plugins.calendar 4.3.4 "Calendar"
nl.x-services.plugins.insomnia 4.0.1 "Insomnia (prevent screen sleep)"
org.Apache.cordova.inappbrowser 0.6.0 "InAppBrowser"

何かアイデアはありますか?

15
Larsi

プラグイン/プラットフォームに何か問題があったようです。

すべてのプラグインを削除しました

   cordova platform rm Android
   cordova platform add Android

次に、プラグインを再追加し、すべてが機能します。

7
Larsi

ワイルドカードは受け入れられますが、スキーム、ポート、またはホスト名の左端の位置としてのみ:

*://*.example.com:* 

...これは、任意のポートで任意のスキームを使用して、example.comのすべてのサブドメイン(ただしexample.com自体ではない)に一致します。

ここでのキーは、上記のboldの一部かもしれません。

以下を指定しています:

localhost:1337

*.ajax.aspnetcdn.com

しかし、まだ呼び出している

http://ajax.aspnetcdn.com

http://localhost:1337

に変更するかもしれません

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.Azure-mobile.net http://localhost:1337 http://ajax.aspnetcdn.com">

ポートを指定していますが、「http」を*に置き換えることができます

うまくいけば、これが助けになるか、正しい方向に導かれます。

30
Steve Kennedy