问题标签 [content-security-policy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1881 浏览

javascript - 在 Firefox 中使用 CSP 的 Javascript 小书签

我有一个简单的 Javascript 小书签,我将它放在一起用于针对外部工具运行适当的 GitHub 存储库的内容:

当我在 Chrome 或 IE 中运行它时(在通过 Daring Fireball 的 JS 书签生成器运行它之后,它工作正常。在 Firefox 中,它会生成内容安全策略错误:

我已经阅读了关于该主题的这个 SE 问题,以及关于 CSP 的 github 博客文章,其中承认 CSP 不应该干扰小书签,但当时(2013 年 4 月),“没有一个浏览器能做到这一点。” 目前是 Firefox 仍然会出错,但 Chrome 和 IE 会出错吗?

我还发现了一篇关于用户脚本和 CSP 的博客文章,作者能够通过包含来自 github 存储库的代码来解决这个问题。我试过了,将我的书签修改为:

但不出所料,这对小书签不起作用,因为调用代码仍然来自浏览器。

简而言之 - 关于如何让这个小书签在 Firefox 上工作的任何想法?

0 投票
1 回答
275 浏览

google-chrome - 如何使用 chrome 扩展运行不安全的内容

我正在使用 chrome 扩展来添加 https://* 页面,但是当我想从 http://* 加载页面时,chrome 阻止了该页面说:

[阻止] https://* 的页面运行来自 http://* 的不安全内容。

所以我想知道,是否有任何方法或 API 可以避免这种情况?

0 投票
2 回答
1222 浏览

javascript - CSP 安全的 ES6 模板文字

是否有一个模板引擎可以解析ES6 模板文字(例如"string ${var}")样式的模板,而不会违反脚本评估的内容安全策略 (CSP) 限制?

CSP 对脚本评估的限制阻止eval限制、new Function和.setTimeout(string)setInterval(string)

有许多模板引擎可以提供或修改以提供类似 ES6 样式的模板文字,例如 John Resig 的MicroTemplates、 lodash _.template 和DoT.js。然而,所有似乎都违反了 CSP 使用new Function.

如果var可以是不受限制的 Javascript,在某些方面会很方便,但由于明显的原因,这可能是不可能的。但是,我需要能够修改引擎以根据需要格式化输出。

在这种情况下,性能不是问题,并且预编译模板不是一种选择。其他人有讨论了预编译

作为附加限制,内容是文本,而不是 HTML。因此,我认为 Knockout 或 PURE 等面向 DOM 的模板引擎不会有效地工作。

我的第一个想法是从mustache.js开始并从那里修改它(即更改mustache.tags = ['${', '}']DIY 解决方案,但我会很感激有关该主题的任何想法,因为似乎很少有关于 CSP 和模板的讨论.

0 投票
1 回答
6922 浏览

javascript - chrome 扩展的内容安全策略问题

尝试通过 chrome 扩展应用程序中的 javascript 在“iframe”中加载不同的内容(可以是 pdf、swf 等)。使用数据 URL 方案加载内容,如下所示:

// 此 javascript 在 html 文件中注册,并且 LoadFunction 在单击按钮时在 DOMContentLoaded 事件中注册。

但只要调用上述函数,就会引发内容安全策略错误:

拒绝从 'data:application/pdf;base64,JVBERi0xLjQNCiXi48/TDQoxIDAgb2JqDQo8PA0KL1R5cGU...mRvYmoNCjkgMCBvYmoNCjw8DQovVHlwZSAvRm9udA0KL1N1YnR5cGUgL1R5cGUxDQovQmFzZUZ' 加载插件数据,因为它违反了“以下”安全指令“默认”策略

但令人惊讶的是,当数据 url 更改为 'data:image/png;base64,' + 'base64 encoded data'; 时不会引发此错误。并且图像成功加载到 iframe 中。

据我所知,仅当内联代码直接执行到 html 文件时才会引发此错误,但这里不是这种情况,如果是这种情况,那么为什么它不会为图像文件引发。

此外,如果我尝试将 manifest.json 文件中的内容安全策略设置为:“content_security_policy”:“script-src 'self'; object-src 'self'; frame-src 'self' data:”

然后错误更改为: 拒绝从'data:application / pdf;base64'加载插件数据,因为它违反了以下内容安全策略指令:“object-src'self'

所以可能需要设置 object-src,但不确定它应该是什么。

0 投票
1 回答
701 浏览

firefox-addon - CSP 使用 page-mod 的 contentScript 阻止“eval”

我试图创建一个将与 github 交互的扩展。我需要在我的代码中使用“eval”,但我一直被页面 CSP 阻止。这是我的代码的简化版本:

有人可以帮我解决问题吗?

0 投票
3 回答
32315 浏览

javascript - nodeJS - 我究竟可以把内容安全策略放在哪里

我不知道在我的代码中应用以下内容安全策略 (CSP) 代码段的位置;

它应该在 HTML 中吗?

它是否最好在 JavaScript 中实现,如下面的代码片段所示?

0 投票
2 回答
48520 浏览

javascript - Chrome 应用中的内容安全政策

我的 Chrome 应用程序具有以下清单:

我有一个运行的脚本文件eval。我已阅读有关CSP和沙盒的信息,但仍然收到此错误:

拒绝将字符串评估为 JavaScript,因为 'unsafe-eval' 不是以下内容安全策略指令中允许的脚本来源:“default-src 'self' chrome-extension-resource:”。请注意,'script-src' 没有显式设置,因此 'default-src' 用作后备。

0 投票
1 回答
467 浏览

firefox-addon - CSP 和浏览器扩展

根据“浏览器附加组件和扩展豁免”部分的维基百科:

CSP 不应干扰用户安装的浏览器加载项或扩展程序的操作...

但不幸的是,它阻止了由我的插件注入的外部脚本。

我总是可以将这个注入的代码放入内容脚本中。但我想知道是否有另一种方法可以克服这个问题。

0 投票
2 回答
3465 浏览

javascript - chrome 打包的应用程序不允许在 knockout.js 中使用 unsafe-eval

我开发了一个网络应用程序并将其作为解压扩展程序上传到我的 Google chrome 应用程序中。在执行期间,我收到以下错误:

拒绝将字符串评估为 JavaScript,因为 'unsafe-eval' 不是以下内容安全策略指令中允许的脚本来源:“default-src 'self' chrome-extension-resource:”。请注意,'script-src' 没有显式设置,因此 'default-src' 用作后备。[淘汰赛-3.0.0-min.js:54]

添加"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"到 manifest.json 会产生一条消息:

'content_security_policy' 仅允许用于扩展和旧版打包应用程序,但这是一个打包应用程序。

这是否意味着我不能使用 knockous.js 为 chrome 应用商店开发应用程序?

如何解决这个问题?

0 投票
1 回答
2261 浏览

javascript - Knockout.js 安全绑定

我想使用带有敲除的安全绑定。为此,我使用了knockout-secure-binding.js

谁能解释为什么下面的代码不起作用?它抛出一个错误`

未捕获的 #< 对象 > 淘汰赛-secure-binding.js:74`

行后ko.applyBindings(new viewModel());