【问题标题】:Where is x-content-type-options: nosniff coming from?x-content-type-options: nosniff 来自哪里?
【发布时间】:2016-09-07 06:12:10
【问题描述】:

我正在使用带有节点 4.4.3 的 express 4.x。 Web 服务器是 nginx,我在节点中运行一个 http 服务器模块 - 为此我使用 nginx 作为反向代理(使用“上游”)。当我在浏览器控制台中检查时,我看到了下面的响应头

x-content-type-options: nosniff

我已经彻底检查了我的 nginx conf 文件中的这个设置/标题,但它不存在。想知道我是否可以得到一些关于它可能来自哪里的指示?当我在 nginx.conf 中添加add_header X-Content-Type-Options nosniff; 时,我看到上面的内容在响应头中出现了两次,如下所示

X-Content-Type-Options:nosniff
X-Content-Type-Options:nosniff

想知道是什么原因造成的。如果需要任何进一步的信息,请告诉我。谢谢

这是我节点安装的模块文件夹内容

【问题讨论】:

    标签: node.js express nginx


    【解决方案1】:

    这可能来自安装在您的 express 应用程序中的软件包。您应该检查package.json 文件。查找列出所有已安装软件包的dependencies 部分。

    Helmet 通常是添加X-Content-Type-Options:nosniff 标头的软件包之一。

    编辑:根据您的依赖项列表,最可能的解决方案是您使用 Express 返回“jsonp”内容。在这种情况下,当用户未设置 Content-Type 标头时,Express 将添加 X-Content-Type-Options 标头(请参阅 node_modules/express/lib 中第 289 行的 response.js 文件)。 它也可能来自 Express 使用的一个或另一个依赖项,例如 'finalhandler'、'send' 或 'serve-static'(请参阅 there 了解 Express' 依赖项列表),但如果不调试整个应用程序,就很难确定。

    【讨论】:

    • 哦,谢谢你的线索,但我的节点安装很新,我还没有安装头盔。这是我在应用程序中使用的“要求”列表 var moment = require('moment'); var 猫鼬 = 要求('猫鼬'); var express = require('express'); var bodyParser = require('body-parser'); var http = require('http'); var url = 需要('url');谢谢
    • 好的。你介意发布 package.json 的依赖列表吗?
    • Node 和 express 对我来说很新。我想知道 package.json 的位置是什么,因为我在节点安装下找不到它,也找不到应用程序目录。让我将已安装模块的屏幕截图添加到原始帖子中。谢谢
    • 您应该在项目的根目录中找到此文件,它是节点应用程序的标准配置。你应该在做npm init 时得到它。然后,当您使用 npm install --save name_of_the_dependency 添加所有依赖项时,该文件将描述安装在 node_modules 文件夹中的所有包。关于您的依赖项,不确定哪个包添加了标头。它可以直接来自 Express,当用户没有设置 Content-Type 时,它​​会在 jsonp 响应的情况下注入标头。我会更新答案,但你一定要调查:)
    • 非常感谢您的指点。显然它来自快递,因为我从我在 SO 上发布的另一个问题中得到了线索:stackoverflow.com/questions/37178175/… 这是供参考的帖子,表达内容类型设置的链接在哪里显示:github.com/expressjs/express/blob/… 我会接受这个与开发人员在 github 上。我会将你的答案标记为答案,因为它几乎是一样的。
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2014-07-31
    相关资源
    最近更新 更多