Я пытаюсь исправить уязвимость XSS, я окружил свой код блоком try catch для обработки HttpRequestValidationException
.IIS7.5 Server.ClearError() не работает
Я не могу разделить весь код по причинам неприкосновенности частной жизни. Следующий код относится к функции, вызываемой в методе Page_Load()
страницы ASP.NET
.
Вот мой блок catch.
// A long try block was here ...
catch (HttpRequestValidationException)
{
// ASP.NET, let me handle this one.
Server.ClearError();
Response.Write(Messages.ParameterValidationError);
}
Это работает, как ожидалось на локальном хосте, но когда я опубликовать код на IIS, другой HttpRequestValidationException
выбрасывается из временного класса asp.net (смотрите ниже).
Path to the wild class : '...\Temporary ASP.NET Files\<app_name>\5d4b8059\5739b33c\App_Web_n1jnrwmr.0.cs'
Эта проблема также возникает на локальном хосте, когда я не использую Server.ClearError()
.
Мне нужно показать удобное сообщение об ошибке вместо этой страницы раздражающих исключений.
Любая помощь приветствуется, спасибо!
Этот проект использует другую архитектуру, и это проект предприятия; поэтому я не собираюсь изменять архитектуру. Вот почему я ищу варианты, такие как очистка ошибки и выдача результатов. Я могу использовать этот метод только в том случае, если нет другого варианта. –
Имея централизованную, простую политику для устранения исключений, протоколирование и получение пользователем дружественной страницы с ошибками - это то, что должно делать корпоративное приложение. Наличие большого количества кода, который вызывает try/catch (SomeException) catch (SomeOtherException), является плохой идеей. Если бы вы не могли немного объяснить архитектуру обработки ошибок, которую вы внедрили? –