Удалить заголовок ответа сервера IIS7
Я знаю как удалить заголовок ответа Server
с помощью HTTP-модуля на основе приведенной выше ссылки.
Я просто хочу знать, почему необходимо удалить его таким образом.
Удалить заголовок ответа сервера IIS7
Я знаю как удалить заголовок ответа Server
с помощью HTTP-модуля на основе приведенной выше ссылки.
Я просто хочу знать, почему необходимо удалить его таким образом.
Комментарии в ссылка Aristos также дает хороший ответ на вопрос" Почему ".
Все сводится к тому, что MS не хочет легко позволять людям изменять это значение. Для маркетинговых или иных целей открыт для интерпретации.
Одна вещь, которую следует вынести из этого обсуждения, заключается в том, что изменение заголовка сервера бесполезно для какой-либо безопасности. Существует множество способов точно определить, какой тип (и версия) программного обеспечения веб-сервера работает.
Таким образом, у нас остается только одна причина для этого: экономить байты. Если у вас нет сайта с очень высокой посещаемостью, это не проблема. Если у вас сайт с высоким трафиком, то, скорее всего, вы уже используете один или несколько настраиваемых модулей.
У меня работает следующее:
В IIS 10.0 (Windows Server 2016/2019) вы можете удалить заголовок Server, настроив requestFiltering в своем узле web.config system.webServer:
<security>
<requestFiltering removeServerHeader ="true" />
</security>
Таким образом, вам не придется возиться со сложными правилами перезаписи исходящих файлов.
Чтобы удалить заголовок ASP.NET X-Powered-By, вам по-прежнему понадобится раздел customHeaders, как упоминалось выше.
источник: https://www.saotn.org/remove-iis-server-version-http-response-header/
В этом примере на самом деле не удаляется заголовок «сервер», просто напишите на нем что-нибудь еще.
Лучше заголовок: «IIS7, как отправить собственный HTTP-заголовок сервера». Прочтите аналогичную статью http://blogs.technet.com/b/stefan_gossner/archive/2008/03/12/iis-7-how-to-send-a-custom-server-http-header.aspx
Теперь, если вам интересно, почему это не единственный способ, вы можете перейти на свой веб-сервер и просто удалить его из заголовков инициалов.
Если вам интересно, зачем использовать IHttpModule + PreSendRequestHeader, потому что именно так вы захватываете заголовки в начальной части и помещаете сначала заголовок «сервер», прежде чем это сделает iis.
Надеюсь на эту помощь.
<remove name="whatever" />
).
- person David Murdoch; 28.12.2010
I just want to know why it is necessary to remove [the 'Server' header] this way.
Тем не менее, спасибо за ответ!
- person David Murdoch; 29.12.2010
Вы также можете очистить значение, добавив outboundRule в файл web.config в IIS 7+:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Server header">
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
Основная идея удаления этого заголовка заключается в следующем
Подробнее о проверке заголовков ответов Http
Response.Headers.Set("Server", "My Awesome Server");
отлично работает в коде программной части страницы, пока пул приложений установлен в «Интегрированный конвейерный режим».
По сути, IPM предназначен специально для того, чтобы конвейер IIS был интегрирован с конвейером ASP.NET, чтобы можно было делать такие вещи. См. ответ Мехрдада Афшари для обсуждения.