ASP.NET пользовательских ошибок и компиляции debug = "false" и безопасность - PullRequest
1 голос
/ 07 июля 2010

Я продолжаю читать, что на веб-сайте ASP.NET должны быть включены пользовательские ошибки в файле web.config, потому что исключения будут отображать трассировку стека.

У меня может быть неисправная память (в настоящее время нет доступа к разрабатываемому веб-сайту ASP.NET), но я подумал, что если в файле web.config отладка отладки = "false", то трассировка стека не отображается.

Правильно ли мое понимание флага отладки и отображения трассировки стека? Если это так, то, даже если пользовательские ошибки не включены, не будет единственным сообщением, отображаемым для удаленных пользователей, за исключением того, что это не описательное сообщение:

"Невозможно отобразить страницу, поскольку произошла внутренняя ошибка сервера."

Если это так, разве не будет нормально с точки зрения безопасности не отображать пользовательскую страницу ошибки для исключения?

Ответы [ 2 ]

2 голосов
/ 07 июля 2010

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

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

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

0 голосов
/ 07 июля 2010

Пользовательские сообщения об ошибках почти всегда следует отдавать предпочтению перед выбрасываемой ошибкой по умолчанию. Он изящно отправляет ваших пользователей в место, где они могут продолжать просматривать ваш сайт, не возвращаясь и не пытаясь снова.

Отключение отладки в вашей сети. Настройка ОЧЕНЬ важна и не ограничивается просто отображением номеров строк и трассировки стека ... она также указывает компилятору встроить режим выпуска, который значительно оптимизирует производительность. Как только ваше приложение будет запущено, вся отладка должна быть отключена.

...