1

我正在使用helmetNPM 模块来摆脱X-Powered-By但不确定Server标题。我已阅读Remove headers for security但不确定如何Server使用helmet模块删除标头。

4

1 回答 1

0

简而言之:头盔不接触Server头部。

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

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

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

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

在我看来,删除这些标头的安全性好处是微乎其微的。它阻止了一小部分攻击者:那些查看这些标头以找出为您的网站提供支持的技术,尝试一些攻击,然后放弃的人。攻击者还有其他迹象表明您的网站存在 Express 漏洞。他们也可能尝试非 Express 特定的攻击。或者他们可能会尝试 Express 攻击,即使他们不确定是 Express!Express 的主要维护者 Doug Wilson 也有同样的看法

于 2016-12-29T16:28:09.723 回答