AspxErrorPath на странице пользовательских ошибок
в настоящее время у нас есть страница, которая используется для отображения сообщения об ошибке при возникновении ошибки на нашем сайте. Он не имеет никакой функциональности, кроме отображения метки, в которой упоминается об ошибке.
вот моя проблема, наш клиент запустил обзор безопасности и сообщает нам, что наша страница ошибок содержит фишинг из-за URL-адреса в строке запроса, теперь я не считаю это проблемой, но чтобы положить конец вопросу, я хотел бы удалить строку запроса.
мой сеть.запись конфигурации такова:
<customErrors mode="On" defaultRedirect="~/DefaultErrorPage.aspx">
</customErrors>
когда возникает ошибка, она переходит в DefaultErrorPage.аспн?aspxerrorpath= / Website1 / LastPage.аспн
Как я могу предотвратить это? Однако я мог бы просто перенаправить на страницу, если она содержит запрос, но я больше ищу способ предотвратить строку запроса вместо дополнительного перенаправления.
3 ответов
вы можете поймать / обработать все ошибки в вашем глобальном.asax файл вместо этого и сделать перенаправление там
protected void Application_Error(object sender, EventArgs e)
{
//Exception ex = Server.GetLastError();
Server.Transfer("~/DefaultErrorPage.aspx");
}
в качестве быстрого исправления я нашел это добавление"?"в конце настройки defaultRedirect работал для меня в удалении aspxerrorpath.
кроме того, я получал ту же проблему с настройками customErrors в системе.веб и то же решение сработало:
<customErrors mode="On" defaultRedirect="~/SystemError.aspx">
<error statusCode="403" redirect="~/Home.aspx?"/>
<error statusCode="404" redirect="~/Home.aspx?"/>
</customErrors>
альтернативно, сделайте то же самое в системе.настройки веб-сервера:
<httpErrors errorMode="Custom">
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" path="/Home.aspx?" responseMode="Redirect" />
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/Home.aspx?" responseMode="Redirect" />
</httpErrors>
вам придется взять под контроль процесс обработки ошибок самостоятельно. Один из методов-избавиться от перенаправления пользовательских ошибок и использовать метод Application_Error в global. Затем вы можете направить человека, по мере необходимости, без аргумента строки запроса.
другой вариант ELMAH, который конструирован для избежания желтого экрана ошибок смерти внутри ASP.NET - ... Затем вы можете настроить дружественную ошибку и не беспокоиться о написании кода обработки ошибок как такового.
третий метод состоит в том, чтобы обучить команду безопасности о том, как ASP.NET работает и видит, является ли "озабоченность безопасностью" законной (это может быть) или нет. Это не означает, что они не заставят вас сделать один из вышеперечисленных вариантов в любом случае, конечно.