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

Как удалить заголовок Microsoft-HTTPAPI / 2.0 в IIS 8 и 10

Я пытаюсь удалить Microsoft-HTTPAPI / 2.0 заголовок сервера из моих HTTP-ответов после эта статья из MSDN. В настоящее время я безуспешно применяю решение на основе реестра в Windows Server 2008 R2 и Windows 10. Я все еще получаю заголовки всякий раз, когда отправляю HTTP-запрос с пустым Host заголовок.

curl -X GET "127.0.0.1" -H "Host:" --head

Приведенная выше команда возвращает неверный запрос HTTP 400 с Server: Microsoft-HTTPAPI/2.0.

Есть ли более новый подход к удалению определенного заголовка? Я знаю, что это спросили раньше для IIS 7 (что, вероятно, решение все еще работает), но перезагрузка не решает проблему в тех двух Windows, которые я упомянул выше.

Заранее спасибо.

пс. Я знаю его безопасность в безвестности, но аудиторы этого хотят.

Если заголовок сервера ответа возвращает «Microsoft-HttpApi / 2.0», это означает, что вместо IIS вызывается HTTP.sys. Эксплойты и сканирование портов используют это как средство снятия отпечатков с сервера IIS (даже того, который в противном случае скрывает заголовок сервера).

Вы можете проверить это, выдав ошибку с помощью CURL:

curl -v http://www.yourdomain.com/ -H "Range: bytes=00-18446744073709551615"

Вы увидите что-то подобное, если ваш сервер отправляет заголовок:

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339

Вы можете добавить значение реестра, чтобы HTTP.sys не включал заголовок.

  • Открыть Regedit
  • Перейдите к: Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters
  • Если DisableServerHeader не существует, создайте его (DWORD 32bit) и присвойте ему значение 2. Если он существует, а значение не 2, установите его на 2.
  • Перезагрузите сервер ИЛИ перезапустите службу HTTP, вызвав "net stop http", затем "net start http"

Ссылка: WS / WCF: удалить заголовок сервера

После добавления раздела реестра ответ будет выглядеть так:

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339

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