首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Chrome扩展禁用网页的内容安全策略

通过Chrome扩展禁用网页的内容安全策略
EN

Stack Overflow用户
提问于 2020-05-10 11:56:49
回答 1查看 5.5K关注 0票数 2

我正在创建一个Chrome扩展,它修改由服务器提供的脚本(我无法控制)以向网站添加新功能,我有以下想法:

webRequestBlocking.

  • Send
  1. 通过WebRequest阻止原始脚本,将被阻止的脚本的url插入到页面中。
  2. 从页面的脚本中获取这个url。
  3. 编辑代码的一部分(字符串)。
  4. 编辑字符串。

(另一种工作方式是将其重定向到Chrome扩展文件夹中的本地修改脚本return { redirectUrl: chrome.extension.getURL("modified.js") };,但是不可能动态修改它,这就是为什么我想对修改过的脚本进行验证)

当我尝试在第五步中对字符串进行评估时,它会说:...'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'nonce-DFX4zDtBDF32343LjE2DFKMs' 'self' https://website.com"

我尝试使用webRequest.onHeadersReceived来查看是否可以更改CSP头(一些答案是:Edit Content Security Policy in onHeadersReceived),但是没有“内容-安全-策略”标题。

我可以看到一个元标记(除了‘script-src’之外,我省略了所有内容):

代码语言:javascript
复制
<meta http-equiv="Content-Security-Policy" content="script-src 'nonce-DFX4zDtBDF32343LjE2DFKMs' 'self' https://website.com; base-uri 'none';">

根据这个答案(https://stackoverflow.com/a/27324485/10364842),Chrome扩展不能覆盖网页的CSP。但有人回答说:I know this is incredibly old, but I came across it while trying to inject Artoo.js into a page. The chrome extension does indeed allow you to modify the page you're looking at and let any content through.

Eval在内容脚本中工作,但是我需要在页面的上下文中执行脚本,因为它依赖于全局范围。

我想知道是否有可能通过Chrome扩展来改变网页的CSP,或者是否有其他方法仅仅通过Chrome扩展来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2021-03-02 15:04:49

“默认情况下,扩展具有应用于它们的内容安全策略。默认策略限制它们可以从其中加载和资源的源,并且不允许可能不安全的做法,例如使用eval()。请参阅默认内容安全策略以了解此策略的更多含义。

您可以使用"content_security_policy“清单键放松或收紧默认策略。此键的指定方式与报头相同。有关CSP语法的一般描述,请参见使用内容安全策略。

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

https://stackoverflow.com/questions/61711565

复制
相关文章

相似问题

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