отключить метод http в экспресс js

Я тестирую Nessus в своем экспресс-приложении, и вот что я получаю

На основе испытаний каждого метода:

  • Методы 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 разрешены на:

    //логин /стили

я сделал некоторый поиск и на самом деле в конечном итоге здесь. отключить методы HTTP, TRACK TRACE и т. д.

решение

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 представителей


person zhang yu    schedule 15.04.2020    source источник


Ответы (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()
})
person razki    schedule 15.04.2020
comment
Большое спасибо. . оно работает!. однако достаточно странно... у него еще остался один... ' - Методы 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 разрешены на : / ' - person zhang yu; 16.04.2020