Мне нужно удалить лишние заголовки (в первую очередь, чтобы пройти тестирование на проникновение). Я потратил время на поиск решений, включающих запуск UrlScan, но они громоздки, поскольку UrlScan необходимо устанавливать каждый раз при запуске экземпляра Azure .
Для Azure должно быть хорошее решение, не требующее развертывания установщиков из startup.cmd.
Я так понимаю, что заголовки ответов добавляются в разных местах :
- Сервер : добавлен IIS.
- X-AspNet-Version : добавлен System.Web.dll во время Flush в классе HttpResponse
- X-AspNetMvc-Version : добавлен MvcHandler в System.Web.dll.
- X-Powered-By : добавлено IIS
Есть ли способ настроить (через web.config и т. Д.) IIS7 для удаления / скрытия / отключения заголовков HTTP-ответа, чтобы избежать предупреждения «Чрезмерные заголовки» на asafaweb.com , без создания модуля IIS или развертывания установщиков, которым необходимо запускаться каждый раз при запуске экземпляра Azure?
источник
MSDN опубликовала эту статью о том, как скрыть заголовки на веб-сайтах Azure. Теперь вы можете скрыть сервер из web.config, добавив запись в system.webServer
<security> <requestFiltering removeServerHeader ="true" /> </security>
VS будет нахмуриться, считая приведенное выше недействительным. В приведенной выше ссылке есть код в виде рисунков, который трудно найти. Версия MVC по-прежнему скрыта при запуске приложения, как указано выше, то же самое для версий x-powered-by и .Net.
источник
В NuGet также есть пакет, который поможет вам добиться этого с помощью нескольких строк конфигурации и без изменений кода: NWebsec. Документы об удалении заголовков версий можно найти здесь: https://github.com/NWebsec/NWebsec/wiki/Suppressing-version-headers.
Это продемонстрировано здесь: http://www.nwebsec.com/HttpHeaders/VersionHeaders (в Azure)
Отказ от ответственности: я разработчик проекта.
источник
Ответ Ника Эванса идеален, но ...
Если вы удалите эти заголовки в целях безопасности , не забудьте изменить
ASP.NET Session coockie name
! Потому что легче угадать используемый язык или версию сервера, когда вы видите это:Чтобы изменить имя файла cookie: (проявите изобретательность)
<system.web> <sessionState cookieName="PHPSESSID" /> </system.web>
источник
Объединяя предыдущие ответы от @ giveme5minutes и @AKhooli, поскольку они относятся к веб-сайтам Azure, а также к нескольким другим элементам, которые сканер хочет видеть, это изменения, которые я внес, чтобы ASafaWeb был доволен сайтом Azure.
Он по-прежнему жалуется на то, что файл cookie заголовка привязки Azure не является только https, но привязка - это тип файла cookie, который вы все равно хотите воспроизвести, верно?
<system.web> <compilation debug="false"> <httpRuntime enableVersionHeader="false" /> <httpCookies httpOnlyCookies="true" requireSSL="true" /> <customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx" /> </system.web> <system.webServer> <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="DENY" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> <security> <!--removes Azure headers--> <requestFiltering removeServerHeader="true" /> </security> </system.webServer>
источник