Просмотр в… /trace.axd показывает информацию о сервере – PCI show stopper

Вопрос:

Моя компания выполняет проверки соответствия PCI, и каждый раз, когда мы каждый раз звоним, это сообщение об ошибке “Сведения об ошибке в ASP.NET”.

Описание: обнаружено подробное сообщение об ошибке ASP.NET… и он обеспокоен тем, что мы показываем потенциальных хакеров нашу версию ASP.NET, версию IIS и т.д.

Вещью, которая запускает эту информацию, является просмотр на “наш сайт”/Trace.axd, и если вы получаете сообщение об ошибке Trace следующим образом:

Ошибка трассировки Описание: текущие настройки трассировки предотвращают просмотр trace.axd удаленно (по соображениям безопасности). Однако его можно было просматривать браузерами, работающими на локальной серверной машине.

который находится в нижней части страницы:

————————————————– —————————— Информация о версии: версия Microsoft.NET Framework: 2.0.50727.4234; Версия ASP.NET: 2.0.50727.4223

Самое забавное, что сообщение об ошибке говорит о том, что трассировка отключена, и вам нужно изменить web.config, чтобы увидеть ее! У моего web.config есть (exerpt):

<configuration>
<system.web>
<trace enabled="false" requestLimit="10" pageOutput="false" localOnly="true" />

Я считаю, что это правильная иерархия для инструкции disable trace. Я не понимаю, почему сервер отвечает сообщением о том, что трассировка отключена, если она отключена. Если это нормальное поведение, то почему наш PCI-сканер жалуется на разглашение слишком большой информации?

Любая помощь, которая заставляет ее перестать быть настолько разговорчивой, очень ценится.

Кстати, если это имеет значение, мои пользовательские ошибки выглядят так:

<system.web>
<customErrors mode="Off" defaultRedirect="~/Errors/GeneralError.aspx">
<error statusCode="404" redirect="~/Errors/PageNotFound.aspx" />
</customErrors>

Лучший ответ:

Во-первых, убедитесь, что CustomErrors включены, используя:

<customErrors mode="On" 

или даже

<customErrors mode="RemoteOnly"

Что касается trace.axd, ваш web.config корректен и имеет trace enabled="false" чтобы этот URL-адрес не был навигационным. Я считаю, что он показывал только эту информацию об ошибках, потому что ваши пользовательские страницы ошибок не использовались.

Ответ №1

Ни одно из этих решений не работало для нас, потому что обработчик зарегистрирован и обходит конвейер MVC. Наше решение состояло в том, чтобы удалить обработчик до регистрации mvc-обработчиков.

<system.webServer>
<handlers>
<remove name="TraceHandler-Integrated" />
<remove name="TraceHandler-Integrated-4.0" />

Работал как шарм и возвращал 404 по запросу.

Оцените статью
TechArks.Ru
Добавить комментарий