Phonegap开发人员应用程序和内容安全策略

时间:2015-11-05 00:57:24

标签: cordova

我正在使用Phonegap Developer应用程序测试我的phonegap应用程序。我开始收到有关缺少Content-Security-Policy元信息的控制台警告。由于Phonegap默认模板不包含任何CSP,因此我决定使用Cordova。我已经在index.html中包含了白名单插件(cordova-plugin-whitelist)和以下一行:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

问题是,在此之后,Phonegap Developer应用程序不再更新。它停留在默认应用模板中的“连接到设备”中。 Console.log也不起作用。

我错过了什么吗?什么是正确的CSP?

非常感谢任何想法! :)

3 个答案:

答案 0 :(得分:0)

确保您拥有控制台插件。

https://github.com/apache/cordova-plugin-console

答案 1 :(得分:0)

我有点同样的问题。确保您允许unsafe-inline脚本和样式表:

<meta http-equiv="Content-Security-Policy" content="
    default-src *;
    style-src * 'unsafe-inline'; 
    script-src * 'unsafe-inline'; 
" />

作为参考,here是Content-Security-Policy文档。

答案 2 :(得分:0)

我遇到了你提到的同样问题。 首先,您必须将其添加到setText

config.xml

第二:你必须将CSP添加到索引中:

  <allow-navigation href="http://*/*"/>
  <allow-intent href="http://*/*"/>
  <allow-intent href="tel:*"/>

这里有一些事情发生,所以让我们把它分解成组成指令。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 允许来自上述任何来源的JavaScript使用动态JavaScript评估:例如使用eval()。

具体而言,

'unsafe-eval' Cordova,间隙方案使得JS&lt; - &gt;适用于iOS的本地通信。

gap:特定于Cordova,Android所需,以便TalkBack(辅助功能)正常运行。

以下是每个值的完整文档含义: http://content-security-policy.com/

干杯。