问题标签 [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.
http - 为什么即使我通过了规则,我也会收到 CSP frame-src 错误?
我收到错误:
Refused to frame 'https://oauth.telegram.org/' because it violates the following Content Security Policy directive: "frame-src https://outh.telegram.org"
我相信我已经正确设置了我的内容安全策略规则。为什么还是被屏蔽了?
javascript - 包含 gatsby 头盔脚本
我不能在头盔盖茨比中包含脚本。我要包含的脚本是这样的:
我试过这样做,控制台给了我一个错误:
使用这种语法我也尝试过,它给了我一个错误:
将如何解决?
node.js - 如何使用头盔?
我想使用头盔包执行以下操作:
Content-Security-Policy 应该是什么以及如何使用头盔进行设置?访问控制允许来源怎么样?
我还想用它来启用最佳安全实践。你有什么建议?这些最佳实践是什么,我该如何设置它们?
node.js - 允许带有 npm 头盔的 S3 图像
我正在使用 npm 头盔来保护我的 express 应用程序,但我想允许我的 S3 存储桶中的图像进行渲染。当我使用有意义的 helment 时出现此错误Refused to load the image '<URL>' because it violates the following Content Security Policy directive: "img-src 'self' data:".
,我违反了头盔实现的 CSP。
我在他们的文档中唯一能找到的是:
这确实允许我的图像渲染,但我仍然想要头盔提供的 CSP。我只需要基本上将我的 S3 链接列入白名单,但我在他们的文档中找不到关于此主题的任何内容
reactjs - 内容安全策略指令块动态加载的内联脚本
我正在为使用头盔的快速应用程序添加以下 CSP 指令。在某些情况下,我使用 react-helmet 在我的反应应用程序中动态加载脚本标记。但 CSP 阻止脚本运行。在客户端控制台中给出以下错误:
我的配置中缺少什么?
快递服务器端:
反应应用:
浏览器发送的原始 CSP 报告:
reactjs - 头盔导致 Heroku 上托管的 MERN 应用程序导致错误:拒绝执行内联脚本,因为它违反了以下内容
我在 Heroku 上托管了我的 MERN 应用程序,但是每当我在 app.js 文件中实现头盔时,都会导致此问题。
应用程序在本地环境中运行良好,但头盔导致错误:
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-c8oXMAC5SpSNhKqLeKnZuBIrD93BdSvpZ47lOJrkmFE=”)或随机数(“nonce-...”)。
我还尝试按照以下方法修复它:
- 在项目根目录中创建一个 .env 文件
- 添加变量如下:
INLINE_RUNTIME_CHUNK=false
- 再次构建项目并再次加载扩展。
但这无济于事。请指导我如何修复它以及在我的应用程序中实施其他安全措施的最佳方法是什么?
node.js - 将 crypto.js 值传递给脚本 nonce
我已经使用 node-helmet 设置了我的项目 CSP,所以它看起来像这样:
我可以在我的 HTML 中将 nonce 显示为文本,<%= nonce %>
因此我知道该值被正确传递,但是当我尝试将该值传递给 script 标签上的 nonce 属性时,该值似乎没有通过。我只是收到一条错误消息,说该脚本违反了我的 CSP
编辑#2:
我现在在控制台中收到此错误:
我看到很多人建议使用加密来处理 nonce ......为什么我的 CSP 忽略它?
编辑#3:
我更改let nonce = crypto.randomBytes(16).toString('base64');
为let nonce = crypto.randomBytes(16).toString('hex');
which 使 CSP 接受该值..但我仍然无法将加密创建的值传递到我的脚本标记中的 nonce 属性中...发生了什么事!
我觉得问题一定来自scriptSrc: ["'self'", nonce]
......我真的不知道!
express - 在使用 Helmet 中间件时允许 SVG
我当前的 Helmet 配置阻止了 SVG 加载到我的 express 应用程序上。我的应用程序尝试从 Ionicons 加载 SVG 文件,这需要使用以下脚本:
在我的 app.js 文件中,我有以下 ContentSecurityPolicy 配置:
常规图像加载正常,但 SVG 不加载。在 Helmet 指令下,我试图允许来自 Ionicon 域(即https://unpkg.com)的必要脚本,但我收到以下错误消息:
内容安全策略:页面的设置阻止了内联资源的加载(“script-src”)。
任何想法将不胜感激。谢谢