javascript - 消除 "X-Powered-By" header 是否会自动从 HTTP 响应中消除 "Server" header

标签 javascript node.js http httpresponse helmet.js

我正在使用 helmet NPM 模块来摆脱 X-Powered-By 但不确定 Server header 。我读过Remove headers for security但不确定如何使用 helmet 模块摆脱 Server header 。

最佳答案

简而言之: Helm 不接触 Server header 。

我维护 Helmet,其中没有任何内容以某种方式涉及 Server header 。如果未设置 header ,则 Helmet 不会设置它;如果设置了 header , Helm 将不会删除它。

据我所知,Express 也没有设置 Server header 。这意味着这个 header 来自其他地方,可能是您的 Express 服务器“前面”的服务器,例如 nginx。

您可以尝试这样的操作,但如果您的服务器“前面”有东西,这可能不起作用。

app.use(function (req, res, next) {
  res.removeHeader('Server');
  next();
});

在我看来,无论如何删除这些 header 的安全好处是微乎其微的。它阻止了一小部分攻击者:那些查看这些 header 以弄清楚您的网站采用何种技术,尝试一些攻击,然后放弃的人。攻击者有其他迹象可以看出您的站点存在 Express 漏洞。他们也可能会尝试不特定于 Express 的攻击。或者他们可能会尝试 Express 攻击,即使他们不确定它是 Express! Doug Wilson,Express 的主要维护者,shares this sentiment .

关于javascript - 消除 "X-Powered-By" header 是否会自动从 HTTP 响应中消除 "Server" header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376929/

相关文章:

Java:重现捕获的请求

http - 带有 WGET 的 NodeJS 文件下载器?

javascript - iphone 浏览器上的以下代码有什么问题?

node.js - 使用net.server一次性处理http和express

javascript - 将文本区域的内容保存到文件并从 PHP 服务器页面加载

angularjs - 无法从 Grunt 服务器运行的 Node + AngularJS 应用程序中读取环境变量

node.js - 【M1芯片Mac】Nuxt构建太慢

http - 这是一个格式正确的多部分/表单数据请求吗?

javascript - HTML 和 Javascript 在我的代码示例中不能很好地协同工作

javascript - 在特定位置附加段落