首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >content_security_policy在Chrome扩展中不生效

content_security_policy在Chrome扩展中不生效
EN

Stack Overflow用户
提问于 2016-03-13 17:33:08
回答 1查看 115关注 0票数 0

Zemanta Chrome Extension加载失败,并显示以下错误消息

代码语言:javascript
复制
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行更改为以下内容,并重新加载扩展

代码语言:javascript
复制
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com https://*.zemanta.com; object-src 'self'"

为什么上面的错误消息中的CSP指令中没有列出"https://*.zemanta.com",我如何确保它在CSP中?

EN

回答 1

Stack Overflow用户

发布于 2016-03-13 22:10:35

它看起来像是有自己的CSP的网页抛出的错误,而不是在你的扩展中。因此,您在其中设置的CSP不起作用。

这可能是由于内容脚本试图将<script src="...">插入到页面中而导致的。这取决于页面的CSP,可能会失败。

您可以尝试使用XHR加载脚本并插入一个包含代码的<script>标记,而不是src链接,从而尝试bypass the page's CSP。请注意,这可能会在以后的阶段失败,因为虽然脚本将以这种方式执行,但它将在自己的操作中受制于CSP (因此,如果它也试图添加<script>标记,它将失败)。

或者,您也可以使用CSP来拦截和修改webRequest头部。这是有风险的,因为您通常会放松页面的安全性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35968660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档