Apache Cordova App允许外部脚本

时间:2018-01-22 19:01:29

标签: javascript html cordova phonegap-plugins content-security-policy

我目前正在通过visual studio构建一个apache cordova移动应用程序,并且遇到了尝试通过我的应用程序中的外部脚本运行小部件的问题。这些脚本在浏览器模拟器中运行良好,但是一旦我尝试在苹果设备上运行它们,脚本就不会加载。我已经研究过这个问题,发现它通常与内容安全策略有关,我在下面附上这些政策来帮助找出问题所在。

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

为什么这些小部件没有加载到我的应用程序中可能还有什么问题呢?这些是我试图在我的应用程序中加载的脚本,供您参考。

<script type="text/javascript" src="https://rf.revolvermaps.com/0/0/8.js?i=5tfq2n8w5rc&amp;m=0c&amp;c=cbb677&amp;cr1=ffffff&amp;f=calibri&amp;l=0&amp;cw=ffffff&amp;cb=450084" async="async"></script>

<script type="text/javascript" src="https://rf.revolvermaps.com/0/0/0.js?i=5gbey55pbu3&amp;d=2&amp;p=1&amp;b=1&amp;w=293&amp;g=1&amp;f=calibri&amp;fs=12&amp;r=0&amp;c0=362b05&amp;c1=450084&amp;c2=000000&amp;ic0=0&amp;ic1=0" async="async"></script>

2 个答案:

答案 0 :(得分:0)

你有在线资源的白名单吗?

更好的方法是嵌入这些资源。加载在线脚本真的很不安全。服务器可以发送js,并通过cordova api访问您的设备。

https://cordova.apache.org/docs/de/latest/guide/appdev/whitelist/

答案 1 :(得分:0)

脚本和链接标记中的src和href应该有一个方案(http或https),否则,当Cordova找到//时,它将使用它的默认方案,文件:。

将http:或https:添加到您的所有脚本和链接标记中,然后它应该可以正常工作。

示例:

<script type="text/javascript" src="http://rf.revolvermaps.com/0/0/8.js?i=5tfq2n8w5rc&amp;m=0c&amp;c=cbb677&amp;cr1=ffffff&amp;f=calibri&amp;l=0&amp;cw=ffffff&amp;cb=450084" async="async"></script>