Почему нельзя удалить заголовок ответа сервера через web.config в IIS7?

Удалить заголовок ответа сервера IIS7

Я знаю как удалить заголовок ответа Server с помощью HTTP-модуля на основе приведенной выше ссылки.

Я просто хочу знать, почему необходимо удалить его таким образом.


person David Murdoch    schedule 09.09.2010    source источник


Ответы (6)


Комментарии в ссылка Aristos также дает хороший ответ на вопрос" Почему ".

Все сводится к тому, что MS не хочет легко позволять людям изменять это значение. Для маркетинговых или иных целей открыт для интерпретации.

Одна вещь, которую следует вынести из этого обсуждения, заключается в том, что изменение заголовка сервера бесполезно для какой-либо безопасности. Существует множество способов точно определить, какой тип (и версия) программного обеспечения веб-сервера работает.

Таким образом, у нас остается только одна причина для этого: экономить байты. Если у вас нет сайта с очень высокой посещаемостью, это не проблема. Если у вас сайт с высоким трафиком, то, скорее всего, вы уже используете один или несколько настраиваемых модулей.

person NotMe    schedule 03.01.2011
comment
Хотя его удаление почти наверняка относится к классу Security Theater, а не Actual Security, для тестирования на проникновение очень часто требуется этот посторонний заголовок, подобный этому, который идентифицирует конфигурацию системы, которую необходимо удалить. - person Owen Blacker; 17.09.2012
comment
Я разрабатываю мобильные веб-сайты, я согласен с аргументом в пользу безопасности, на самом деле это не безопасность, но я утверждаю, что ее удаление для экономии места актуально для клиентов, чья пропускная способность съедена ненужными данными. Давайте будем хорошими гражданами сетевого мира и уважать наших пользователей и инфраструктуру, от которой мы зависим. - person Norman H; 10.05.2013

У меня работает следующее:

В 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/

person C. Molendijk    schedule 19.05.2019

В этом примере на самом деле не удаляется заголовок «сервер», просто напишите на нем что-нибудь еще.

Лучше заголовок: «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.

Надеюсь на эту помощь.

person Aristos    schedule 28.12.2010
comment
Ну нет. Как отправить собственный HTTP-заголовок «Сервер» - это не то, что я ищу ... Я уже знаю, как это сделать. Я хочу знать, почему это необходимо делать в HttpModule для сервера, но не для других заголовков, которые можно добавить / удалить через web.config (<remove name="whatever" />). - person David Murdoch; 28.12.2010
comment
@ Дэвид, это еще что-то, о чем вы спрашиваете (и я не уверен, что отвечу сейчас), ответ на ваш главный вопрос таков, что я написал. - person Aristos; 28.12.2010
comment
в вопросе, который я задал: 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>
person needfulthing    schedule 09.01.2018

Основная идея удаления этого заголовка заключается в следующем

  1. По соображениям безопасности. злоумышленнику будет непросто определить программное обеспечение (версию) и веб-сервер, поддерживающий сайт.
  2. Это уменьшает размер данных, передаваемых сервером в браузер.

Подробнее о проверке заголовков ответов Http

person shana    schedule 30.04.2014

Response.Headers.Set("Server", "My Awesome Server"); отлично работает в коде программной части страницы, пока пул приложений установлен в «Интегрированный конвейерный режим».

По сути, IPM предназначен специально для того, чтобы конвейер IIS был интегрирован с конвейером ASP.NET, чтобы можно было делать такие вещи. См. ответ Мехрдада Афшари для обсуждения.

person Brian    schedule 03.01.2011