如何为 Cordova Ios/Windows Phone/Android 正确设置“内容安全策略”?
Posted
技术标签:
【中文标题】如何为 Cordova Ios/Windows Phone/Android 正确设置“内容安全策略”?【英文标题】:How to set properly "content-security-policy" for Cordova Ios/Windows Phone/Android? 【发布时间】:2016-08-02 15:49:19 【问题描述】:我正在为我们公司构建一个应用程序。我们有一个 iframe(不要问为什么......)加载一个响应式网站。它(应该)对用户透明。
我添加了几行js来管理离线页面。
它在 android 模拟器(带有 Visual Studio 的 cordova)和 android 设备上运行良好。但是我面临一个content-security-policy
,我怀疑它是这个错误的来源:
deviceready 在 5 秒后没有触发
根据我的阅读,它可能来自内容安全政策。
我在运行时遇到了这个错误:
拒绝加载框架“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" />
感谢您的宝贵时间,
斯蒂夫。
【问题讨论】:
您是否尝试删除您的内容安全策略并查看错误是否仍然存在? 是的:有或没有相同的错误。 (我编辑了我的帖子) 【参考方案1】:CSP 错误为您提供了所有详细信息。您没有指定“frame-src”指令,因此它会退回到“default-src”,它不会将空白列入白名单:协议。
你有两个选择:
1) 将gap:
添加到您的'default-src'。
2) 添加一个“frame-src”指令并在其中添加gap:
。
如果您选择 2,您可能还需要添加 'child-src' 指令以便将来兼容与 'frame-src' 相同的值。
【讨论】:
以上是关于如何为 Cordova Ios/Windows Phone/Android 正确设置“内容安全策略”?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 react.cordova、ionic 和 android 设置 ssl 证书?
Apache cordova - 如何为 Google Play 或 Itunes 打开本机应用程序?