Стек MEAN: правильная очистка пользовательского ввода с помощью express -validator - PullRequest
1 голос
/ 27 мая 2020

Используя стек MEAN с Node v11 и Express v4, а также MongoDB и Mon goose, мне было интересно, сделал ли я все, что мог, чтобы должным образом дезинфицировать весь пользовательский ввод, который отправляется на мой Node.js сервер, а также хранится в MongoDB.

Я использую express -validator и перед обработкой проверяю все входящие данные на уровне маршрута с помощью связанных методов .trim () и .escape (). Пример:

app.post('/whatever', [
  check('title').trim().escape(),
  check('age').trim().escape()
], (req, res) => {
  //return Book.findOne({title: req.body.title}).execAsync() // <---- is this safe now????
})

В дальнейшем я выполняю несколько операций CRUD, таких как поиск записей или изменение пользовательских данных. Могу ли я еще что-нибудь сделать перед сохранением данных в MongoDB?

Я довольно много искал в Интернете, но есть масса доступной информации, и я чувствую, что если бы я учел все рекомендации, мой код стал бы в десять раз длиннее, и я действительно изо всех сил пытаюсь сказать приятное - имеют функции важнейших мер безопасности.

...