Zemanta Chrome Extension加载失败,并显示以下错误消息
loader.js:13 Refused to load the script 'https://static.zemanta.com/widgets/blogger.com/merged-blogger.js?v=1451290656'
because it violates the following Content Security Policy directive:
"script-src 'self' *.google.com *.google-analytics.com 'unsafe-inline'
'unsafe-eval' *.gstatic.com *.googlesyndication.com *.blogger.com
*.googleapis.com uds.googleusercontent.com https://s.ytimg.com
www-onepick-opensocial.googleusercontent.com www-bloggervideo-opensocial.googleusercontent.com
www-blogger-opensocial.googleusercontent.com *.blogspot.com https://www.blogblog.com".我已将content_securiy_policy行更改为以下内容,并重新加载扩展
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com https://*.zemanta.com; object-src 'self'"为什么上面的错误消息中的CSP指令中没有列出"https://*.zemanta.com",我如何确保它在CSP中?
发布于 2016-03-13 22:10:35
它看起来像是有自己的CSP的网页抛出的错误,而不是在你的扩展中。因此,您在其中设置的CSP不起作用。
这可能是由于内容脚本试图将<script src="...">插入到页面中而导致的。这取决于页面的CSP,可能会失败。
您可以尝试使用XHR加载脚本并插入一个包含代码的<script>标记,而不是src链接,从而尝试bypass the page's CSP。请注意,这可能会在以后的阶段失败,因为虽然脚本将以这种方式执行,但它将在自己的操作中受制于CSP (因此,如果它也试图添加<script>标记,它将失败)。
或者,您也可以使用CSP来拦截和修改webRequest头部。这是有风险的,因为您通常会放松页面的安全性。
https://stackoverflow.com/questions/35968660
复制相似问题