Я пытаюсь удалить 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 не включал заголовок.
Ссылка: 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
Разместите здесь, чтобы люди, которым это нужно, могли это найти. (Спасибо, Орам!)