如何隐藏 HTTP 标头中的 IIS 7.5?

如何隐藏 HTTP 标头中的 IIS 7.5?

有人可以建议如何在 HTTP 标头中隐藏 IIS 7.5 吗?

非常感谢您的任何建议和意见。

基本上就是将其从标题中隐藏起来。

答案1

您可以通过编辑注册表来实现这一点。

在 中HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters,创建一个名为 的 DWORD 条目DisableServerHeader,并将值设置为1

另外,您可以使用 URLRewrite 模块或安装 URLScan,有关更多信息,请参阅以下文章:

http://blogs.msdn.com/b/varunm/archive/2013/04/23/remove-unwanted-http-response-headers.aspx

答案2

我研究过这个问题,因为上面提到的注册表项不会删除它;但是,URLRewrite 方法运行良好。似乎找不到任何地方编写的更改脚本。我编写了与 PowerShell v2 及更高版本兼容的脚本,并在 IIS 7.5 上进行了测试。

# Add Allowed Server Variable
    Add-WebConfiguration /system.webServer/rewrite/allowedServerVariables -atIndex 0 -value @{name="RESPONSE_SERVER"}
# Rule Name
    $ruleName = "Remove Server Response Header"
# Add outbound IIS Rewrite Rule
    Add-WebConfigurationProperty -pspath "iis:\" -filter "system.webServer/rewrite/outboundrules" -name "." -value @{name=$ruleName; stopProcessing='False'}
#Set Properties of newly created outbound rule 
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST"  -filter "system.webServer/rewrite/outboundRules/rule[@name='$ruleName']/match" -name "serverVariable" -value "RESPONSE_SERVER"
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST"  -filter "system.webServer/rewrite/outboundRules/rule[@name='$ruleName']/match" -name "pattern" -value ".*"
    Set-WebConfigurationProperty -pspath "MACHINE/WEBROOT/APPHOST"  -filter "system.webServer/rewrite/outboundRules/rule[@name='$ruleName']/action" -name "type" -value "Rewrite"

相关内容