Назад | Перейти на главную страницу

Удалить / изменить заголовок сервера IIS 10, который раскрывает версию IIS

Я пытаюсь удалить заголовок сервера, который раскрывает версию IIS, но не смог. Я использую IIS Express 10 с ASP.NET Core 3.0 и разработал веб-API. Я пробовал варианты ниже, но заголовок все еще присутствует в ответе и показывает версию IIS 10.0.

  1. Изменен раздел реестра "DisableServerHeader" в параметрах HTTP на 1. Он удалил только заголовок сервера модуля http.sys, а не версию IIS.

  2. Используемый ниже код в файле applicationhost.config внутри <system.webServer> тег

    <rewrite> <outboundRules rewriteBeforeCache="true"> <rule name="Remove Server header"> <match serverVariable="RESPONSE_Server" pattern=".+" /> <action type="Rewrite" value="" /> </rule> </outboundRules> </rewrite>

Я тестировал трюк на этом сайте, и он хорошо работает на IIS 10.

https://www.saotn.org/remove-iis-server-version-http-response-header/#removeserverheader-requestfiltering-in-iis-10-0

просто web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering removeServerHeader ="true" />
        </security>
    </system.webServer>
</configuration>

Я вспомнил, что видел, что это возможно в IIS10, и действительно писал об этом в блоге. Новые функции в IIS 10.

Есть новый removeServerHeader параметр, но он недоступен в графическом интерфейсе, вам нужно использовать редактор конфигурации или использовать PowerShell:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.webServer/security/requestFiltering" -name "removeServerHeader" -value "True"

для всего сервера, если он вам нужен только для сайта, используйте:

Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site'  -filter "system.webServer/security/requestFiltering" -name "removeServerHeader" -value "True"

Мне кажется, это нормально работает, перезагрузка или перезапуск IIS не требуется.

Это не влияет на http.sys заголовок сервера в том редком случае, когда он отвечает на запрос.

Запустить от имени администратора:

%systemroot%\system32\inetsrv\appcmd.exe set config -section:system.webServer/security/requestFiltering /removeServerHeader:"True"  /commit:apphost