Ваш отдел безопасности хочет, чтобы вы сделали это, чтобы тип сервера было труднее идентифицировать. Это может уменьшить заграждение от инструментов автоматического взлома и затруднить взлом людей на сервер.
В IIS откройте свойства веб-сайта и перейдите на вкладку «Заголовки HTTP». Большинство X-заголовков можно найти и удалить здесь. Это можно сделать для отдельных сайтов или для всего сервера (измените свойства объекта веб-сайтов в дереве).
Что касается заголовка сервера, на IIS6 вы можете использовать инструмент URLScan от Microsoft, чтобы удалить его . Port 80 Software также создает продукт под названием ServerMask , который позаботится об этом и многом другом за вас.
Для IIS7 (и выше) вы можете использовать модуль перезаписи URL, чтобы перезаписать заголовок сервера или очистить его значение. В файле web.config (на сайте или на сервере в целом) добавьте этот контент после установки модуля перезаписи URL:
<rewrite>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Server header">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
Вы можете добавить пользовательское значение в действие перезаписи, если хотите. Этот образец взят из этой статьи, которая также имеет другую полезную информацию.
Для заголовка MVC в Global.asax:
MvcHandler.DisableMvcResponseHeader = true;
Отредактировано 11-12-2019 для обновления информации IIS7, поскольку ссылка на блог TechNet больше не действительна.
Чтобы удалить все пользовательские заголовки, которые раскрывают слишком много информации, методы меняются (к сожалению) для IIS 7:
Имя заголовка: X-Powered-By
Добавлять:
в
<system.webServer>
разделе.Имя заголовка: сервер
Реализуйте модуль httpModule, который удаляет этот заголовок, вызывая Response.Headers.Remove ("Server") из события PreSendRequestHeaders. Еще один ресурс для этого: скрытие вашего веб-приложения ASP.NET MVC на IIS 7
Имя заголовка: X-AspNet-версия
В разделе httpRuntime файла web.config - установите:
Имя заголовка: X-AspNetMvc-Version
Из события Application_Start в global.asax - выполните следующий код (C #):
источник
Помещение этого в файл web.config приложения ASP.NET избавит от заголовка X-AspNet-Version:
Обратите внимание, что тег system.web должен уже существовать в файле. Не создавайте дубликат, просто добавьте тег httpRuntime. Возможно, тег httpRuntime уже существует. Если это так, просто добавьте атрибут или установите его значение, если он уже там.
источник
system.web
мой веб-сайт выходит из строя. ты знаешь почему?После того, как мой текущий проект прошел цикл «ужесточения», я написал в блоге о нашем подходе, который включает HTTPModule для удаления следующих заголовков :
Сервер,
X-AspNet-версия,
X-AspNetMvc-версия,
X-Powered-By
Соответствующие произведения воспроизведены ниже:
Но нет простого способа удалить заголовок ответа Сервера через конфигурацию. К счастью, IIS7 имеет управляемую подключаемую модульную инфраструктуру, которая позволяет легко расширять его функциональные возможности. Ниже приведен исходный код модуля HttpModule для удаления указанного списка заголовков ответа HTTP:
Убедитесь, что вы подписали сборку, затем вы можете установить ее в GAC вашего веб-сервера и просто внести следующую модификацию в файл web.config вашего приложения (или, если вы хотите, чтобы он применялся глобально, к machine.config):
источник
Проверьте этот блог . Не используйте код для удаления заголовков ответов. Нестабильно по мнению Microsoft
Вместо этого используйте раздел пользовательских заголовков Web.config:
источник
Я использую следующий код и работает для меня IIS 7.5
источник