You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除IIS 10 403 Forbidden错误页面中的Server响应头

IIS 10 移除403错误页Server响应头解决方案

常规配置失效的核心原因是:带特殊字符的不存在路径触发的403响应由IIS核心层/http.sys提前返回,不会经过ASP.NET管道、URL重写模块、常规web.config响应头规则的处理,因此上层配置无法对这类响应生效。

以下为按优先级排序的可行解决方案:

方案1:使用IIS原生配置屏蔽Server头(最简便,仅IIS 10+支持)

  • 打开IIS管理器,定位到对应站点的根节点,双击「配置编辑器」
  • Section下拉选择 system.webServer/security/requestFiltering
  • 找到removeServerHeader属性,设置为True
  • 点击右上角「应用」,执行iisreset命令重启IIS后生效

该配置会直接在IIS核心层屏蔽所有响应的Server头,覆盖错误页、静态资源、动态页面等所有返回场景

方案2:修改http.sys注册表配置(全局生效,优先级最高)

如果方案1未生效,可修改http.sys的全局规则:

  • 按下Win+R输入regedit打开注册表编辑器
  • 定位到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  • 新建DWORD(32位)值,名称为DisableServerHeader,数值数据设置为1,基数选择十进制
  • 重启服务器或者执行net stop http && net start http命令生效(注意重启http服务会中断所有IIS站点服务)

该配置会直接让http.sys在返回所有响应时都不添加Server头,对服务器上所有IIS站点生效

辅助兜底配置

要覆盖所有场景的信息泄露风险,可额外添加以下配置:

  • 在web.config的system.web节点下添加 <httpRuntime enableVersionHeader="false" /> 移除X-AspNet-Version头
  • 在web.config的system.webServer/httpProtocol/customHeaders节点添加 <remove name="X-Powered-By" />,同时在IIS全局「HTTP响应头」功能中删除X-Powered-By的默认配置
  • 在ASP.NET MVC应用的Global.asax中添加事件代码兜底移除响应头:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
    if (HttpContext.Current != null)
    {
        HttpContext.Current.Response.Headers.Remove("Server");
        HttpContext.Current.Response.Headers.Remove("X-AspNetMvc-Version");
    }
}

内容的提问来源于stack exchange,提问作者Zakhar Kurasov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 21:54:03