如何在浏览器JS控制台中包含脚本时覆盖内容安全策略?

时间:2014-12-05 19:52:29

标签: javascript browser-extension content-security-policy browser-security

我试图以这种方式使用控制台在现有网站上包含JQuery:

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-1.11.1.min.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);

然后我收到了这个错误:

Content Security Policy: The page's settings blocked the loading of a resource at http://code.jquery.com/jquery-1.11.1.min.js ..

在开发过程中,我可能想要包含外部Javascript。我可能不想复制粘贴整个JQuery代码,因为它看起来不整洁。如何为开发目的覆盖内容安全策略?

这对快速测试非常有用。我可能希望稍后将我正在编写的脚本转换为浏览器扩展。

注意(更新):我在现有网站上编写脚本,无法控制设置Content-Security-Policy标头。

2 个答案:

答案 0 :(得分:42)

您可以通过在security.csp.enable菜单中停用about:config来关闭Firefox中整个浏览器的CSP。如果您这样做,则应使用完全独立的浏览器进行测试。例如,在普通浏览器旁边安装Firefox Developer Edition并将其用于测试(正常的Web使用)。

作为替代方案,应该可以在Content-Security-Policy响应标头到达浏览器之前(通过HTTP代理)更改它。也可以通过扩展来执行此操作。

A Chrome extension can set its own CSP用于自己的chrome-extension://...页面,但不能改变普通网页的CSP。

答案 1 :(得分:-1)

我正在使用此Chrome扩展程序按选项卡禁用CSP。

禁用Content-Security-Policy扩展名:

有一个默认情况下会禁用CSP的fork。

始终禁用内容安全策略扩展名: