首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展内容-安全-策略

Chrome扩展内容-安全-策略
EN

Stack Overflow用户
提问于 2013-02-17 03:59:59
回答 2查看 3.8K关注 0票数 4

我需要在我的扩展中动态加载代码。我写这个是为了加载它-

代码语言:javascript
复制
    var se = document.createElement('script');
se.setAttribute('type', 'text/javascript');
se.appendChild(document.createTextNode(code));
document.getElementsByTagName('head').item(0).appendChild(se);

这是我在manifest.js中的安全策略-

代码语言:javascript
复制
 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"

这会抛出一个javascript错误-

代码语言:javascript
复制
 "Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe eval'"

我的问题是--为什么它不轻松?我特别在清单中添加了这一行,以允许不安全的事件。

EN

回答 2

Stack Overflow用户

发布于 2013-02-17 05:16:39

我不认为是你使用了eval导致了这个错误。您将<script>块注入到文档的head中,似乎违反了禁止执行内联JavaScript的策略。

根据Content Security Policy上的文档

将不会执行

内联JavaScript。此限制同时禁止内联块和内联事件处理程序(例如< button onclick='...'>)。

另请注意:

内联脚本

没有任何机制可以放松对执行内联JavaScript的限制。特别是,设置包含“unsafe-inline”的脚本策略将不起作用。

您必须想出一种利用外部js文件来完成您要做的事情的方法,而不是将代码放在内联中。

票数 2
EN

Stack Overflow用户

发布于 2015-03-05 07:22:23

只需将此添加到您的manifest.json,对我很有效。

代码语言:javascript
复制
 "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14914550

复制
相关文章

相似问题

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