정보

응답 헤더 내 Microsoft-HTTPAPI/2.0 제거

Surtle 2021. 9. 8. 11:08

https://docs.liquit.com/docs/lws-appendix-web-server-remove-the-httpapi-20-header

 

Remove the HTTPAPI/2.0 header - Web server

 

docs.liquit.com

https://blogs.msdn.microsoft.com/dsnotes/2017/12/18/wswcf-remove-server-header

Liquit은 들오는 http(s) 요청을 처리하기 위해 Windows 운영 체제의 웹 서버(HTTP.SYS)를 사용합니다. 웹 서버는 모

든 응답에 "server: Microsoft-HTTPAPI/2.0"을 자동으로 추가합니다. 이는 원치 않을 수 있으며 보안 모범 사례를 위해 이 기능 을 비활성화하는 것이 좋습니다 . 웹 서버(HTTP.SYS)는 Microsoft IIS와 같은 동일한 서버의 여러 응용 프로그램에서ㅇㄴㄻㄴㄹㅇㄴㄹㄴㅇㄹㅇㄴㄹㅇㄴㅁㄹㄴㅇㅁ사용됩니다. 다음 변경 사항은 전역적으로 이루어지며 이 웹 서버를 사용하는 모든 응용 프로그램에 영향을 미칩니다!
IIS 서버에서 응답 헤더에 버전정보 노출을 비활성화해도 HTTP 버전을 이상하게 해서 요청하면 Microsoft-HTTPAPI/2.0 이라는 버전이 노출된다.

위 참조 링크는 Microsoft-HTTPAPI/2.0을 비활성화하는 방법 링크이다. 매번 찾기 귀찮아서 올려둔다.
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" 아래에 DWORD 값이 "2"인 레지스트리 "DisableServerHeader"를 생성하거나 편집하여 HTTP.SYS에서 서버 헤더를 비활성화합니다. 레지스트리를 변경한 후 서버를 재부팅하여 기회를 적용하십시오.

자세한 내용은 https://blogs.msdn.microsoft.com/dsnotes/2017/12/18/wswcf-remove-server-header/를 참조하십시오.


요구 사항:
응용 프로그램 프로세스에 도달하지도 않는 잘못된 요청을 포함하여 모든 HTTP 응답에서 HTTP '서버' 헤더의 모든 인스턴스를 억제해야 합니다.

이것이 필요한 이유:
응답 페이로드의 일부로 서버 헤더를 노출하는 것은 https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html 섹션 14.38에 문서화된 보안 취약점 입니다.

자체 호스트 WCF 서비스에 대한 해결 방법:
아래 레지스트리 플래그를 2
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\DisableServerHeader로 설정합니다.

이를 2로 설정하면 자체 호스트 WCF 서비스가 더 이상 SERVER 헤더를 보내지 않으므로 보안을 준수합니다.
이렇게 하면 모든 서버 헤더가 비활성화됩니다.

기본값 0은 헤더를 활성화하고 값 1은 DRIVER(http.sys)의 서버 헤더를 비활성화하지만 앱은 여전히 헤더를 가질 수 있습니다.

IIS 호스팅 응용 프로그램에 대한 해결 방법
1. World Wide Web 게시 서비스를 중지합니다(서버에 IIS 서비스가 필요하지 않은 경우).
2. 필요한 경우 IIS URL 재작성 모듈을 사용하고 서버 헤더 자체를 삭제해야 합니다.
참조: https://blogs.msdn.microsoft.com/varunm/2013/04/23/remove-unwanted-http-response-headers/

이게 도움이 되길 바란다!