有人可以建议如何在 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"