如何为Cordova Ios / Windows Phone / Android正确设置“content-security-policy”?

时间:2016-08-02 15:49:20

标签: android ios cordova content-security-policy taco

我正在为我们公司构建一个应用程序。我们有一个iframe(不要问为什么......)加载一个响应式网站。 (应该)对用户来说是透明的。

为了管理离线页面,我添加了几行js。

它在Android模拟器(带有Visual Studio的cordova)和Android设备上运行良好。但是我面临content-security-policy我怀疑是这个错误的来源:

  

5秒后,deviceready尚未解雇

据我所知,它可能来自内容安全政策。

我在运行时收到此错误:

  

拒绝加载框架'gap:// ready',因为它违反了以下内容   内容安全策略指令:“default-src'self'   https://www.mywebsite.fr   http://www.mywebsite.fr“。请注意'frame-src'   未明确设置,因此'default-src'用作后备。

您如何看待这个元素:

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

我的config.xml:

  <access origin="https:///www.mywebsite.fr" />
<access origin="http:///www.mywebsite.fr" />

感谢您的时间,

STEF。

1 个答案:

答案 0 :(得分:1)

CSP错误为您提供了所有详细信息。你没有指定'frame-src'指令,因此它会回退到'default-src',它不会将gap:protocol列入白名单。

您有两种选择:

1)将gap:添加到'default-src'。

2)添加'frame-src'指令并将gap:添加到该指令。

如果你选择2,你可能还想添加'child-src'指令以便将来兼容与'frame-src'相同的值。