Как остановить ошибку 500 .net, созданную при вызове страницы ошибки 500. - PullRequest
8 голосов
/ 30 января 2009

Вот интересный для вас.

У меня есть пользовательская настройка 500.aspx, которая вызывается, когда в моем приложении возникает ошибка 500. 500.aspx также отправляет мне письмо с подробной информацией об ошибке.

Я заметил одну маленькую проблему.

Если вы попытаетесь атаковать xss на самом 500.aspx, страница 500 не будет вызвана.

Это, очевидно, какая-то логическая проблема.

На самом деле, сами Microsoft страдают от той же проблемы.

Смотрите это в действии здесь

http://www.microsoft.com/500.aspx?aspxerrorpath=%3Cscript%3Ealert(%22XSS%22)%3C/script%3E

Как я могу предотвратить это?

Ed

Ответы [ 3 ]

1 голос
/ 30 января 2009

Если вы попытаетесь атаковать xss на любой странице , пользовательская страница ошибки не будет вызвана (здесь другая случайная страница на Microsoft.com с xss в строке запроса). 1005 *

Поведение, по-видимому, является намеренным, чтобы остановить атаку замертво. Даже сообщение об ошибке указывает на такое поведение:

Проверка запроса обнаружила потенциально опасный ввод клиента значение, и обработка запроса был прерван .

Единственный обходной путь, по-видимому, заключается в том, чтобы отключить проверку или захватить и обработать ошибку в глобальном объекте в Application_Error.

0 голосов
/ 30 января 2009

You возможно, стоит подумать об обработке ваших ошибок в событии Application_Error в Global.asax.cs вместо страницы 500.aspx. Вы можете поместить туда код электронной почты, а затем перенаправить пользователя на страницу с ошибкой после того, как вы выполнили обработку ошибок (именно так мы и поступаем там, где я работаю).

0 голосов
/ 30 января 2009

Похоже, что после того, как вы определили страницу для обработки определенных (или не специфических?) Ошибок, она больше не доступна напрямую через ее URL-адрес, вроде как Web.Config не может быть вызван через браузер.

Я бы настроил 500Test.aspx, который выдает исключение, вызывающее ошибку 500 (и, таким образом, запускает 500.aspx)

Это может сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...