From 6d607e754bea8c8f190652e896b37c11817d0676 Mon Sep 17 00:00:00 2001 From: Alexander Ivanov Date: Tue, 23 Jul 2019 09:09:07 +0300 Subject: [PATCH] hideerrors Signed-off-by: Alexander Ivanov --- README.russian.md | 2 +- sections/security/hideerrors.russian.md | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 sections/security/hideerrors.russian.md diff --git a/README.russian.md b/README.russian.md index b5637315..5bd4da43 100644 --- a/README.russian.md +++ b/README.russian.md @@ -968,7 +968,7 @@ null == undefined // true **Иначе:** Чувствительная информация о приложении, такая как пути к файлам сервера, используемые сторонние модули и другие внутренние рабочие процессы приложения, которые могут быть использованы злоумышленником, может быть утечка из информации, найденной в трассировке стека. -🔗 [**Подробнее: Скрывайте детали ошибок от клиентов**](/sections/security/hideerrors.md) +🔗 [**Подробнее: Скрывайте детали ошибок от клиентов**](/sections/security/hideerrors.russian.md)

diff --git a/sections/security/hideerrors.russian.md b/sections/security/hideerrors.russian.md new file mode 100644 index 00000000..d8b13406 --- /dev/null +++ b/sections/security/hideerrors.russian.md @@ -0,0 +1,25 @@ +# Скрывайте детали ошибок от клиентов + +### Объяснение в один абзац + +Следует избегать предоставления подробных сведений об ошибках в сообщениях клиенту в производственном процессе, поскольку существует риск раскрытия таких важных сведений приложения, как пути к файлам сервера, используемые сторонние модули и другие внутренние рабочие процессы приложения, которые могут быть использованы злоумышленником. +Express поставляется со встроенным обработчиком ошибок, который заботится о любых ошибках, которые могут возникнуть в приложении. Эта промежуточная функция обработки ошибок по умолчанию добавляется в конец стека функций промежуточного программного обеспечения. +Если вы передаете ошибку в `next()` и не обрабатываете ее в пользовательском обработчике ошибок, она будет обработана встроенным обработчиком ошибок Express; ошибка будет записана клиенту с трассировкой стека. Это поведение будет истинным, если для `NODE_ENV` установлено значение `development`, однако, если для `NODE_ENV` установлено значение `production`, трассировка стека не записывается, только код ответа HTTP. + +### Пример кода: экспресс-обработчик ошибок + +``` javascript +// production error handler +// no stacktraces leaked to user +app.use(function(err, req, res, next) { + res.status(err.status || 500); + res.render('error', { + message: err.message, + error: {} + }); +}); +``` + +### Дополнительные ресурсы + +🔗 [Express.js error handling documentation](https://expressjs.com/en/guide/error-handling.html)