移除 IIS 的各种头信息
应安全要求,需要移除 IIS 下的 Server、X-AspNet-Version、X-AspNetMvc-Version、X-Powered-By 等信息
X-Powered-By 比较简单,在相应站点下的 web.config 中增加配置:
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By"/> </customHeaders> </httpProtocol> </system.webServer>
Server、X-AspNet-Version、X-AspNetMvc-Version 比较复杂
1、通过自己编写 IHttpModule 实现移除:
public class IISHeaderRemoveModule : IHttpModule { public void Init(HttpApplication context) { context.PreSendRequestHeaders += OnPreSendRequestHeaders; } public void Dispose() { } void OnPreSendRequestHeaders(object sender, System.EventArgs e) { HttpContext.Current.Response.Headers.Remove("Server"); HttpContext.Current.Response.Headers.Remove("X-AspNet-Version"); HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version"); // 此项需要在 customHeaders 中删除 // HttpContext.Current.Response.Headers.Remove("X-Powered-By"); } }
在 web.config 中增加配置即可:
<system.webServer> <modules> <add name="IISHeaderRemoveModule" type="Namespace.IISHeaderRemoveModule,AssemblyName"/> </modules> </system.webServer>
但是不能实现全局配置,需要在每个站点下的 bin 目录中,增加上代码生成的 dll,可以考虑将 dll 增加到全局 GAC 中
若需要全局配置使用,应在 C:\Windows\System32\inetsrv\config\applicationHost.config 文件中配置,并将 dll 放置在某个公共文件夹中(如:C:\Windows\assembly)但未实现,参考链接:
https://stackoverflow.com/questions/1856696/how-do-i-manually-copy-assemblies-into-the-gac
2、或者可以直接使用网上已经实现的开源项目:
https://github.com/Dionach/StripHeaders
下载安装即可,但是好像只支持 Windows Server 2008 到 Windows Server 2016,即 IIS 7.0 - IIS 8.5
若安装后没有效果,可以尝试执行以下命令:
C:\Windows\System32\inetsrv\appcmd.exe install module /name:StripHeadersModule /image:%windir%\system32\inetsrv\stripheaders.dll /add:true /lock:true
执行后重启 IIS 即可。
参考:https://www.dionach.com/easily-remove-unwanted-http-headers-in-iis-7-0-to-8-5/
https://www.cnblogs.com/xuyufeng/p/14134135.html
3、在 IIS 10.0 中,新增了一个属性 removeServerHeader,可以直接去掉 Server 信息
<system.webServer>
<security>
<requestFiltering removeServerHeader="true">
<!-- other request filtering stuff -->
</requestFiltering>
</security>
</system.webServer>
需要注意,此属性不兼容更低版本,低版本会直接报错,需要兼容性的系统慎用。
输了你,赢了世界又如何...

浙公网安备 33010602011771号