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