hideerrors

Signed-off-by: Alexander Ivanov <oshli.a.er@gmail.com>
This commit is contained in:
Alexander Ivanov
2019-07-23 09:09:07 +03:00
parent 8dc71b25ca
commit 6d607e754b
2 changed files with 26 additions and 1 deletions

View File

@ -968,7 +968,7 @@ null == undefined // true
**Иначе:** Чувствительная информация о приложении, такая как пути к файлам сервера, используемые сторонние модули и другие внутренние рабочие процессы приложения, которые могут быть использованы злоумышленником, может быть утечка из информации, найденной в трассировке стека.
🔗 [**Подробнее: Скрывайте детали ошибок от клиентов**](/sections/security/hideerrors.md)
🔗 [**Подробнее: Скрывайте детали ошибок от клиентов**](/sections/security/hideerrors.russian.md)
<br/><br/>

View File

@ -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)