:///android_asset/www/index.html:第0行:拒绝加载 脚本’http:// xxxxx’因为它违反了以下内容 安全 </跨度> 政策 </跨度> 指令:“script-src’self’‘unsafe-eval’ ‘unsafe-inline’“。07 -03 18:39:21.621:I / chromium(9132): [INFO:CONSOLE(0)]“拒绝加载脚本’http:// xxx’,因为它 违反以下内容 安全 </跨度> 政策 </跨度> 指令:“script-src ‘自我’’不安全 - 评估
MagngooSasa给出的自动答案可以解决问题,但对于其他任何试图理解答案的人来说,这里有一些细节:
在使用Visual Studio开发Cordova应用程序时,我尝试导入远程javascript文件[位于此处 http://Guess.What.com/MyScript.js] ,但有标题中提到的错误。
这是项目的index.html文件中的元标记BEFORE
<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 *">
以下是CORRECTED元标记,允许导入远程脚本:
<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 *;**script-src 'self' http://onlineerp.solution.quebec 'unsafe-inline' 'unsafe-eval';** ">
没有更多的错误!
对于寻求完整解释的任何人,我建议您查看内容安全策略: https://www.html5rocks.com/en/tutorials/security/content-security-policy/ 。
“代码来自 https://mybank.com 应该只能访问 https://mybank.com s数据,和 https://evil.example.com 应该 当然永远不允许访问。每个起源都与之隔离 网络的其余部分“
XSS攻击基于浏览器无法区分您的应用程序代码和从其他网站下载的代码。因此,您必须使用以下内容将您认为安全的内容来源列入白名单 Content-Security-Policy HTTP标头。
Content-Security-Policy
此策略使用一系列策略指令进行描述,每个指令都描述特定资源类型或策略区域的策略。您的策略应该包含default-src策略指令,当它们没有自己的策略时,它是其他资源类型的后备。
因此,如果您将标记修改为:
您是说您正在授权执行Javacsript代码( script-src ) 从起源 'self' , http://onlineerp.solution.quebec , 'unsafe-inline' , 'unsafe-eval' 。
script-src
'self'
http://onlineerp.solution.quebec
'unsafe-inline'
'unsafe-eval'
我想前两个对你的用例是正确有效的,我对其他的有点不确定。 'unsafe-line' 和 'unsafe-eval' 提出安全问题,所以你不应该使用它们,除非你有一个非常具体的需要:
'unsafe-line'
“如果eval及其文本到JavaScript的兄弟们是完全必要的 在您的应用程序中,您可以通过添加'unsafe-eval'来启用它们 在script-src指令中允许使用source。但是,请再说一次。 禁止执行字符串的能力使其变得更加困难 攻击者在您的网站上执行未经授权的代码。“(Mike West,Google)
我们用过这个:
<meta http-equiv="Content-Security-Policy" content="default-src gap://ready file://* *; style-src 'self' http://* https://* 'unsafe-inline'; script-src 'self' http://* https://* 'unsafe-inline' 'unsafe-eval'">
尝试使用以下内容替换元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />
或者除了你所拥有的,你应该添加 http://* 二者皆是 style-src 和 script-src 如上所述,在“自我”之后加入
http://*
style-src
如果你的服务器包括在内 Content-Security-Policy 标题,标题将覆盖元。
详细说明这个添加
script-src 'self' http://somedomain 'unsafe-inline' 'unsafe-eval';
像这样的元标记
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; script-src 'self' https://somedomain.com/ 'unsafe-inline' 'unsafe-eval'; media-src *">
修复错误
解决了
script-src 'self' http://xxxx 'unsafe-inline' 'unsafe-eval';