在 express js 中禁用 http 方法

disable http method in express js

我正在对我的 Express 应用程序进行 Nessus 测试 这是我得到的

Based on tests of each method :

我进行了一些搜索,最终发现了这里。

解决方案

const allowedMethods = ['GET','HEAD','POST'];

function onrequest(req, res) {
  if (!allowedMethods.includes(req.method))
    return res.end(405, 'Method Not Allowed');
  // ...
}

但是我不明白如何使用该解决方案, @kiksy 评论说:This method would sit in your front controller. eg from here: expressjs.com/en/starter/hello-world.html You would add it to line 3

但是第 3 行是 "const port = 3000" 这让我很困惑

有人可以帮助我吗

仅供参考,我无法发表评论,因为我没有 50 个代表

该评论实质上是说您可以将此添加到您的任何路由,并且您正在检查每个请求的传入方法以查看它是否是列入白名单的 HTTP 方法之一,如果不是,则您是转到 return a 405 让用户知道他们尝试使用的方法不受支持。

您可以使用中间件来覆盖所有请求。

const allowedMethods = ['GET', 'HEAD', 'POST']

app.use((req, res, next) => {
    if (!allowedMethods.includes(req.method)) return res.end(405, 'Method Not Allowed')
    return next()
})