首页 文章

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

提问于
浏览
1

我正在使用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

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

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

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

  • 0

    确保你有控制台插件 .

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

  • 0

    我遇到了你提到的同样问题 . 首先你必须将它添加到你的 config.xml

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

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

    <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 *">
    

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

    'unsafe-eval' 允许来自上述任何来源的JavaScript使用动态JavaScript评估:例如使用eval() .

    gap: 特定于Cordova,差距方案支持iOS的JS < - >原生通信 .

    https://ssl.gstatic.com 特定的Cordova,Android所需,以便TalkBack(辅助功能)正常工作 .

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

    干杯 .

相关问题