【问题标题】:disable http method in express js在 express js 中禁用 http 方法
【发布时间】:2020-04-15 10:15:15
【问题描述】:

我正在对我的 express 应用进行 nessus 测试 这就是我得到的

基于每种方法的测试:

  • HTTP 方法 ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGE MKACTIVITY MKCOL 移动通知选项补丁发布 PROPFIND PROPPATCH 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 评论说: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 个代表

【问题讨论】:

    标签: node.js http http-method


    【解决方案1】:

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

    【讨论】:

    • 非常感谢。 .有用!。但是很奇怪...它还剩下一个...' - HTTP 方法 ACL CHECKOUT COPY DELETE GET HEAD LOCK MERGE MKACTIVITY MKCOL MOVE NOTIFY OPTIONS PATCH POST PROPFIND PROPPATCH PUT REPORT SEARCH SUBSCRIBE TRACE UNLOCK UNSUBSCRIBE is allowed on : / '跨度>
    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2019-02-24
    • 2012-04-23
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多