Node.js x-content-type-options:nosniff来自哪里?

Node.js x-content-type-options:nosniff来自哪里?,node.js,express,nginx,Node.js,Express,Nginx,我正在使用节点4.4.3的express 4.x。web服务器是nginx,我在node中运行一个http服务器模块,我使用nginx作为反向代理(使用“上游”)。在浏览器控制台中检查时,我看到下面的响应标题 x-content-type-options: nosniff 我已经彻底检查了我的nginx conf文件的这个设置/头,但它不在那里。不知我能不能得到一些关于它可能来自哪里的指示?当我添加add_header X-Content-Type-Options nosniff时在nginx

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

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

X-Content-Type-Options:nosniff
X-Content-Type-Options:nosniff
不知道是什么原因造成的。如果需要进一步的信息,请告诉我。谢谢

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


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

通常是添加
X-Content-Type-Options:nosniff
标题的包之一

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

哦,谢谢你的提示,但我的节点安装非常新,我还没有安装头盔。这是我在应用程序var moment=require('moment')中使用的“require”列表;var mongoose=require('mongoose');var express=需要(“express”);var bodyParser=require('body-parser');var http=require('http');var url=require('url');谢谢。你介意发布package.json的依赖项列表吗?Node和express对我来说是非常新的。我想知道package.json的位置是什么,因为我在节点安装和应用程序目录下都找不到它。让我把我安装的模块的截图添加到原始帖子中。感谢您应该在项目的根目录下找到此文件,它是节点应用程序的标准配置。您应该在执行
npm init
时得到它。然后,当您使用
npm install-保存依赖项的名称\u添加所有依赖项时,该文件将描述节点\u模块文件夹中安装的所有软件包。关于您的依赖关系,不确定是哪个包添加了标题。它可以直接来自Express,当用户没有设置内容类型时,Express会在jsonp响应的情况下注入头。我会更新答案,但你肯定要调查:)非常感谢你的指点。显然,这是来自express,因为我从另一个问题中得到了线索,我在上面发布了:这篇文章仅供参考,指向express的链接显示了内容类型设置:我将与开发人员在github上讨论这一点。我会把你的答案记下来,因为它说的几乎是一样的。