Почему нельзя удалить заголовок ответа «Сервер» через web.config в IIS7? - PullRequest
16 голосов
/ 09 сентября 2010

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

Я знаю , как удалить заголовок ответа Server с модулем HTTP, основываясь на ссылке выше

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

Ответы [ 6 ]

6 голосов
/ 03 января 2011

Комментарии в Ссылка Аристоса дает хороший ответ на вопрос «Почему».

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

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

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

2 голосов
/ 28 декабря 2010

Этот пример не совсем удаляет заголовок "server", просто напишите на нем что-нибудь другое.

Лучшим заголовком является " IIS7, как отправить пользовательский HTTP-заголовок" Server "". Прочитайте эту похожую статью http://blogs.technet.com/b/stefan_gossner/archive/2008/03/12/iis-7-how-to-send-a-custom-server-http-header.aspx

Теперь, если вам интересно, почему это не единственный путь, вы можете перейти на свой веб-сервер и просто удалить его из заголовков инициалов.

Если вам интересно, зачем использовать IHttpModule + PreSendRequestHeader, потому что именно так вы захватываете заголовки в начальной части и размещаете сначала заголовок «server», прежде чем это сделать.

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

1 голос
/ 09 января 2018

Вы также можете очистить значение, добавив 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>
0 голосов
/ 19 мая 2019

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

В IIS 10.0 (Windows Server 2016/2019) вы можете удалить заголовок сервера, настроив 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/

0 голосов
/ 30 апреля 2014

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

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

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

0 голосов
/ 03 января 2011

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

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

...