从 Express Web 服务器加载 favicon 图标会导致违反内容安全策略

2024-01-22

当我尝试加载我正在创建的网站时出现以下错误

拒绝加载图像'http://167.71.89.74/favicon.ico http://167.71.89.74/favicon.ico' 因为它违反了以下内容安全策略指令:“default-src 'none'”。请注意,“img-src”未明确设置,因此“default-src”用作后备。

看来我修复错误的尝试更改了 X-Content-Security-Policy,但没有更改 Content-Security-Policy。

我正在使用一个简单的 Express 服务器来加载页面请求。

我发现了这个问题,并向我的 Index.html 添加了一个元标记,但这并没有修复错误。

违反以下内容安全政策指令 https://stackoverflow.com/questions/53369507/violates-the-following-content-security-policy-directive

这是我添加的元标记

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'">

我还尝试更改我的 Express 代码以执行 setHeader,如该问题的答案中所述

nodeJS https - 无法设置内容安全策略 https://stackoverflow.com/questions/52291783/nodejs-https-unable-to-set-content-security-policy

这是我的 setHeader 代码

app.use(function(req, res, next) {
  res.setHeader("Content-Security-Policy", "default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';");
  return next();
});

然后我发现Helmet https://helmetjs.github.io/docs/csp/它有一个允许您设置内容安全策略的模块。这是我的头盔代码

const csp = require('helmet-csp');

app.use(csp({
  directives: {
    defaultSrc: ["'self'"],
    scriptSrc: ["'self'"],
    connectSrc: ["'self'"],
    imgSrc: ["'self'"],
    styleSrc: ["'self'"]
  }
}));

当我运行以下curl命令时

curl http://167.71.89.74/ --include

我明白了

HTTP/1.1 404 Not Found
Content-Security-Policy: default-src 'none'
X-Content-Security-Policy: default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'
X-WebKit-CSP: default-src 'self'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self'
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Content-Length: 139
Date: Fri, 09 Aug 2019 19:53:14 GMT
Connection: keep-alive

看起来我的代码正在设置 X-Content-Security-Policy,而不是 Content-Security-Policy。

要修复我的错误,除了 X-Content-Security-Policy 之外,我是否还需要进行其他更改来设置 Content-Security-Policy?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Express Web 服务器加载 favicon 图标会导致违反内容安全策略 的相关文章

  • 如何对 NestJS 中的控制器应用防护进行单元测试?

    我在 NestJS 中配置了一个控制器 我想检查是否设置了适当的防护 有人有如何完成此操作的示例吗 这个 删节的 示例作为一个应用程序可以正常工作 所以我只是在测试指导之后 您会注意到在用户测试中有一些我正在调用的测试Reflect get
  • 如何停止 PythonShell

    如何终止 停止 Node js 中 PythonShell 执行的 Python 脚本的执行 我在交互模式下运行 输出通过 socket io 发送到给定的房间 如果没有更多的客户端连接到这个房间 我想停止 python 脚本的执行 这是我
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • 如何获取从 Express (Node.js) 中的表单传递的数据

    我想获取使用表单从页面传递的数据 并在重定向的页面中使用该数据 我的客户端有这个表格
  • 使用 Node.js 访问用 C++ 编写的 SDK

    我有一个用 C 语言编写的 SDK 可以与我的扫描仪设备进行通信 我需要开发一个可以访问扫描仪设备的电子应用程序 我知道有很多库可用于扫描仪 但我想使用这个 SDK 因为它允许我访问设备的完整功能 而且它是由设备制造商提供的 那么 有没有什
  • MongoDB insertMany 并跳过重复项

    我试图insertMany https docs mongodb com manual reference method db collection insertMany 项目进入我的 Mongo 数据库 但我想跳过重复的 ID 我在用着N
  • 茉莉花节点没有输出

    我是 JavaScript Node js 和 jasmine 的新手 我正在尝试运行 Node Craftsman Book 一书中的测试 FilesizeWatcher 我创建了 package json 文件并运行 npm insta
  • browserify 错误 /usr/bin/env: 节点: 没有这样的文件或目录

    我通过 apt get install 安装了 node js 和 npm 以及所有依赖项 然后安装了 browserify npm install browserify g 它完成了整个过程 看起来安装正确 但是当我尝试为此做一个简单的捆
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • Node.js:您什么时候知道异步任务集合何时完成?

    我想深入一个目录 并根据正则表达式检查我在其中看到的每个文件的名称 基本上是通用unix的一个版本find命令 仅用 Node js 编写 我不关心文件的顺序 但我确实想确保获得所有文件 我有以下代码 我认为 它接近我想要的 它需要一个 s
  • “brew升级节点”后“node -v”显示错误版本

    我升级了 Node js 版本brew upgrade node其中安装了v5 3 0 但是当我得到节点的版本时node v它显示 v0 10 29 I tried brew link overwrite node但这没有用 Brew 已链
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • 从 Node.js 调用 execl、execle、execlp、execv、execvP 或 execvp 的方法

    POSIX 系统公开了一系列exec函数 允许人们将可能不同的东西加载到当前进程中 保留打开的文件描述符 进程标识符等 可以出于多种原因执行此操作 在我的情况下 这是引导 我想更改我自己的进程的命令行选项 然后在现有进程上重新加载它 这样就
  • 如何在不到处添加调试行的情况下记录 Node.js 中的每个方法调用?

    我想记录发出请求的人的 user id 以及为 javascript 类调用的每个方法的方法名称 例如 35 log in 35 list of other users 78 log in 35 send message to user 3
  • Node.js - 异步 JSON 查询

    如果这是一个愚蠢的问题 我深表歉意 但我对 Javascript 很陌生 而 Node js 确实让我很头疼 因为它是异步的 我的目标是从 API 查询 JSON 对象并能够使用它 我试图寻找关于我应该做什么的问题和答案 但它们对我来说都没
  • Node.js es6 使用index.js 导出/导入

    我有以下文件夹结构 src index js lib test js dist examples example js src lib test js export default class Test src index js impor
  • 无法在 AWS Lambda 自定义授权方中验证 Twilio 请求

    我使用 NodeJS 构建了一个自定义授权者 lambda 函数 并将其配置为授权 AWS 中的另一个 lambda 函数 这个其他函数是从 HTTP 端点触发的 并且具有我在 Twilio Messaging Service 中配置为 w
  • 如何在Sequelize中从主模型同一级别的包含模型返回结果?

    这是我在项目中完成的代码和结果 我想获得包含模型的结果与主模型相同的结果 下面的代码是我所做的 序列化查询 User findAll include model Position attributes POSITION NAME then
  • 使用节点护照进行两次不同的登录

    我对两个站点 前台站点和后台 有相同的应用程序 两个站点都需要不同的登录条件 因为后台需要将 is admin 值设置为 true 这是我的登录方法 module exports verifyCredentials function use
  • 使用任何节点模块在内存中创建 ZIP 文件

    是否有任何节点模块可以在内存中创建 zip 我不想将 zip 文件保存在磁盘上 以便我们可以将这个创建的 zip 文件发送到其他服务器 从内存 做这个的最好方式是什么 这是我的例子 var file system require fs va

随机推荐