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 работает и видит, является ли "озабоченность безопасностью" законной (это может быть) или нет. Это не означает, что они не заставят вас сделать один из вышеперечисленных вариантов в любом случае, конечно.