如何抑制或删除HTTP响应头'Server:microsoft - httpi/2.0"?渗透测试显示,这是一个泄露服务器平台的安全漏洞。
我有一个自托管的asp.net核心web应用程序在Windows Server 2019上运行,我使用Http。Sys而不是Kestrel,因为我需要NTML身份验证。
根据微软,响应头可以通过注册表关闭,但它不适合我。我在注册表中设置了DisableServerHeader为2HTTP。SYS注册表设置并重启服务器。
- 如果我没有添加响应头,它将被自动添加。服务器:Microsoft-HTTPAPI/2.0
- 如果我添加一个响应头,该值将自动添加。Server: my-dumy-valuemicrosoft - httpi/2.0
更新,我发现了问题!我没有正确输入参数名,导出密钥时显示了一个跟踪空格。在删除空间并重新启动服务器后,它可以正常工作。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters]
"DisableServerHeader "=dword:00000002
似乎没有代码解决方案从主机上的服务器上删除HTTP头。一个解决方案是编辑Windows注册表。
你可以添加一个注册表值,所以HTTP。Sys不包含头文件
1。打开注册表编辑器
2。导航到:ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters
3。如果DisableServerHeader不存在,创建它(DWORD 32bit)并给它一个值2。如果不存在,且值不是2,则设置为2。
4。重新启动服务器或通过调用"net stop HTTP"重新启动HTTP服务。然后"net start http">
参考:https://learn.microsoft.com/ru-ru/archive/blogs/dsnotes/wswcf-remove-server-header
我通过在注册表中输入正确的参数名称解决了这个问题。这是一个复制粘贴错误,密钥名后面有一个空格。
键不再以空格结尾,一切正常。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters]
"DisableServerHeader"=dword:00000002
您是否尝试在IIS中配置requestFilter
与removeServerHeader
?
参考:RequestFilter
默认设置为false,您可以设置为true参考更多