gpt4 book ai didi

node.js - 在 express js 中禁用 http 方法

转载 作者:行者123 更新时间:2023-12-02 02:55:28 28 4
gpt4 key购买 nike

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

Based on tests of each method :

  • HTTP 方法 ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGEMKACTIVITY MKCOL MOVE NOTIFY OPTIONS PATCH POST PROPFINDPROPPATCH PUT 报告搜索订阅跟踪解锁取消订阅允许在 :

    //登录/风格

我进行了一些搜索,最终找到了这里。 disable HTTP methods, TRACK TRACE etc

解决方案

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

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

但是我不明白如何使用该解决方案,@kiksy 评论说:此方法将位于您的前端 Controller 中。例如从这里:expressjs.com/en/starter/hello-world.html 你会把它添加到第 3 行

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

谁能帮我解决这个问题

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

最佳答案

评论实质上是说您可以将其添加到您的任何路由中,并且您正在检查每个请求的传入方法以查看它是否是列入白名单的 HTTP 方法之一,如果不是,您将返回 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()
})

关于node.js - 在 express js 中禁用 http 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61226302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com