内容安全策略指令:“script-src 'self' blob: filesystem: chrome-extension-resource:” 获取时是不是
Posted
技术标签:
【中文标题】内容安全策略指令:“script-src \'self\' blob: filesystem: chrome-extension-resource:” 获取时是不是【英文标题】:Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:" While fetching whether内容安全策略指令:“script-src 'self' blob: filesystem: chrome-extension-resource:” 获取时是否 【发布时间】:2016-08-29 06:28:07 【问题描述】:我正在使用 jQuery simple 是否插件来获取是否并尝试创建一个 chrome 小部件。
在将文件加载为 chrome 扩展时,我收到错误,在查看了 google 提供的所有帮助后,我仍然无法解决此问题。
以下是雅虎的错误是否
> jquery-2.1.3.min.js:4 Refused to load the script
> 'https://query.yahooapis.com/v1/public/yql?format=json&rnd=2016437&diagnosti…ces(1)%20where%20text=%22New%20Delhi%22)%20and%20u=%22c%22&_=1462326587463'
> because it violates the following Content Security Policy directive:
> "script-src 'self' blob: filesystem: chrome-extension-resource:".
另一个字体错误,
> Refused to load the font
> 'data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk…GIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA'
> because it violates the following Content Security Policy directive:
> "default-src *". Note that 'font-src' was not explicitly set, so
> 'default-src' is used as a fallback.
使用的清单代码是
"content_security_policy": "script-src 'self'; object-src 'self' https://query.yahooapis.com/",
"permissions": [
"tabs", "<all_urls", "http://localhost/",
"http://*/*", "https://*/*", "https://query.yahooapis.com/*"
],
"content_scripts":
[
"css": [
"css/component.css",
"css/tooltip-line.css",
"css/modal.css"
],
"js": [
"js/modernizr.custom.js",
"js/jquery-2.1.3.min.js",
"js/jquery.simpleWeather.min.js",
"js/handlebars-v4.0.5.js",
"js/moment.min.js",
"js/background.js"
],
"matches": [ "http://*/*", "https://*/*"]
]
另外,在我的 html 文件中,我正在使用这个元标记
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' http://* 'unsafe-inline'; script-src 'self' http://* 'unsafe-inline' 'unsafe-eval'" />
谁能帮我解决这个问题。
【问题讨论】:
在 处关闭你的标签,所以它实际上是 而不是 我回家后看看能不能帮到你。出于安全原因,我会立即警告您,chrome 扩展在其跨域内容中受到严格限制。 【参考方案1】:您的 content-security-policy 包含 "script-src 'self'
,这意味着无法从第三方 URL 加载脚本。
您已在 object-src
指令中指定了 yahoo API。 object-src
指令 (MDN) 指定 <object>
、<embed>
和 <applet>
元素的有效来源。
要从第三方加载脚本,您必须在 script-src
指令中指定如下:
"content_security_policy": "script-src https://query.yahooapis.com/ 'self'; ..."
【讨论】:
以上是关于内容安全策略指令:“script-src 'self' blob: filesystem: chrome-extension-resource:” 获取时是不是的主要内容,如果未能解决你的问题,请参考以下文章
尝试渲染 iframe:祖先违反了以下内容安全策略指令:“frame-ancestors 'none'”
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”