问题标签 [helmet.js]

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 投票
1 回答
114 浏览

node.js - 使用 Helmet 设置 CSP 和 CORP 标头后未加载资源

为了让 web 应用更安全并强迫自己更好地控制未来的添加(不同 CDN 上的 JS 和 CSS 资产),我在我的 Fastify(与 Express 相同)网络应用中运行 Helmet 插件。

如果我停用所有头盔控件,如下所示: fastify.register(helmet, false)一切正常,所有资源都加载到客户端。

然后我尝试用不同的配置玩(直到筋疲力尽),没有任何效果。配置和浏览器错误如下:

均匀设置

与其他政策变体:同源,跨源似乎都不起作用。

错误

如您所见,我也在 LOCALHOST 上运行,我没有在其他地方进行测试。

0 投票
4 回答
810 浏览

node.js - 头盔快递 ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200

请我需要帮助,我检查了所有谷歌并没有得到真正的答案来打开我的问题。我想用头盔来保护我的快递服务器。但是当我使用它时,我收到此错误:ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200 用于从我的数据库中加载我的图像。这是我的服务器快递:

我从我的数据库中获取我的图像,所以 localhost 中的 url 是:http://localhost:3000/image/<name_image>

当我不使用头盔时,一切正常。

请任何帮助

0 投票
1 回答
26 浏览

node.js - HelmetJS 内容安全策略即使使用随机数也拒绝应用内联样式

我一直在使用头盔来实现 Content-Security-Policy 并且在将我使用的 Node 版本从 6 升级到 16 之前没有任何问题。

当应用程序首次加载时,我返回一个样式化的 HTML 元素,并在样式标记上使用一个随机数。升级节点版本后,没有加载任何内容,我在浏览器控制台中看到此消息:

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src 'self' 'nonce-uXeTuzCq2Sp5MWrSBuypzA=='”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=”)或随机数(“nonce-...”)。

这是我目前与头盔一起使用的 CSP 配置。

我已经为指令尝试了不同的配置,但没有任何效果。

我很困惑,因为控制台中的错误消息建议使用随机数,但我正在使用随机数。在网络选项卡中,我可以看到标题上的 CSP,并且样式标签上有一个随机数,如预期的那样。

0 投票
1 回答
35 浏览

node.js - 使用头盔时无法在我的网站上附加谷歌表格

使用头盔 js 时,我无法将谷歌表单附加到我的网站。允许它的代码是什么?

框架

头盔中间件

客户端错误

拒绝构建“https://docs.google.com/forms”,因为它违反了以下内容安全政策指令:“default-src 'self'”。请注意,'frame-src' 没有明确设置,所以 'default-src' 用作后备。

0 投票
1 回答
29 浏览

node.js - NodeJs 头盔 contentSecurityPolicy 阻止字体

我不确定为什么它允许来自谷歌字体的其他字体,但它总是阻止材料图标和 fontawesome。我尝试用不同的方式编写谷歌字体,但它仍然不起作用。我不确定编写允许的域的正确方法是什么如果我将添加“*”设置到列表的末尾,那么谷歌材料字体会正确加载。请让我知道我做错了什么,这是我的代码

对于材质图标,我也收到此错误:

我收到这个字体真棒错误:

0 投票
0 回答
27 浏览

jquery - 从安全来源加载 JQuery 脚本

我正在使用 Node JS、Express 和 JQuery 开发我的 Web 应用程序。我是 CSP 的新手。我会进行高效的 JQuery 脚本加载。例如,

在页面加载脚本将同时加载。我只会加载 app1.js,只有在真正需要时才加载 app2.js。为了做到这一点,我使用

在 app1.js JQquery 代码中。服务器端,我使用这样的快递头盔:

所以,有一些观察:这段代码在 Chrome 中运行良好,但在 Firefox 中不起作用。我从 Chrome 控制台错误中获取我的 sha256。获取 sha256 对我来说很复杂。使用script-src": ["'self'", "'unsafe-inline'"] 作品,但我知道它不安全,所以我会避免 unsafe-inline

是否可以在不使用 nonce 或 SHA 的情况下以安全模式加载脚本?如果没有,如何轻松获得 sha 或 nonce?我读过它,但 sha256 似乎总是错的。谢谢