Реклама:

В настоящей главе сначала описываются механизмы обработки ошибок в Microsoft ASP.NET 2.0, а затем технологии входа в систему и принципы их использования, Заключительная часть главы посвящена новой службе ASP.NET 2.0, которая называется Health Monitoring и является мощной расширяемой структурой для трассировки и регистрации ошибок в течение рабочего цикла.

Обработка ошибок

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

Каждый раз при возникновении ошибки (при наступлении исключительной ситуации во время рабочего цикла или при появлении в коде приложения ошибки, которая не обрабатывается блоком try/catch) ASP.NET генерирует страницу с детальной информацией об ошибках (рис. 7-1). Созданная страница содержит такие уязвимые данные, как информация об исключительной ситуации, о трассировке стека, точная версия ASP.NET и код ошибки HTTP. Хотя эта информация необходима для разработки, в производственных приложениях вы вряд ли захотите показывать ее клиентам, ведь они могут оказаться злоумышленниками.

Байер Доминик Microsoft ASP.NET. Обеспечение безопасности. Мастер-класс

Рис. 7-1. Страница с подробной информацией об ошибках

Для того чтобы отказаться от такой страницы, используйте настройку конфигурации <customErrors> в файле web.config. Если атрибуту mode присвоить значение On, то ASP.NET сгенерирует менее детализированную страницу (рис, 7-2), которая будет просто оповещать клиента о возникновении ошибки.

Однако часто требуется, чтобы страница с информацией об ошибке содержала некоторые дружественные слова для пользователя и имела такой же внешний вид, как и остальная часть приложения. (Содержимое подобных страниц часто является субъектом корпоративной или клиентской политики.) Этого можно достичь путем добавления элемента <customErrors> в файл web.config. Вы также можете определить страницу на страничном уровне, путем добавления атрибута ErrorPoge в директиву @Page.

Байер Доминик Microsoft ASP.NET. Обеспечение безопасности. Мастер-класс

Рис. 7-2. Обычная страница с информацией об ошибке

Установка страницы с информацией об ошибке по умолчанию

<customErrors

mode="Remot еО nly"

defaultRedirect="GeneralErrOr.aspx" />

Как видите, атрибут mode указывает, используется ли пользовательская страница с информацией об ошибке для всех запросов или же только для удаленных клиентов. Данный атрибут удобно использовать для устранения неполадок при просмотре приложения локально на Web-сервере и при отображении «неопределенных» ошибок для удаленных клиентов.

Атрибут defaultRedirect перехватывает все необработанные ошибки, возникающие в приложении. Если вы хотите отделить страницы с информацией об ошибках для приложения и для HTTP (например, 404 Page Not Found), можете добавить в эти страницы по умолчанию исключительные ситуации путем указания кода ошибки HTTP и соответствующей страницы с информацией об ошибке.


⇐ Предыдущая страница| |Следующая страница ⇒