移除HTTP 404页面的请求URL与版本信息:IIS配置咨询
移除IIS 404错误页面敏感信息的问题解答
能否移除404页面的Requested URL和Version Information?
当然可以,通过配置自定义错误页面或调整IIS响应设置,就能避免这类敏感信息泄露。
web.config配置 vs IIS图形界面:哪种是最佳实践?
两种方式都能实现需求,但web.config配置是首选的最佳实践,理由如下:
- 配置和项目代码绑定,可随部署同步到不同环境,不用在每个服务器上重复手动配置
- 支持版本控制,方便追踪配置变更历史
- 适合批量部署场景,效率更高
IIS图形界面配置适合临时测试或者单服务器的快速调整,但配置只存在于当前服务器,无法随项目同步,长期维护成本更高。
移除敏感信息只能靠自定义错误页面吗?
不是,除了自定义错误页面,还有两种补充方式:
- 关闭版本信息泄露:在web.config中添加移除
X-Powered-By响应头的配置,或者在IIS中直接删除该响应头,避免暴露IIS版本 - 调整错误响应模式:把IIS的错误模式设为
Custom,就算不指定自定义页面,IIS也会返回不带敏感信息的通用错误页,但用户体验不如自定义页面友好
不过自定义错误页面是最灵活的方案,既能彻底隐藏敏感信息,又能给用户提供友好的引导内容。
IIS 10.0.19041.1配置自定义404错误页的具体步骤
- 打开IIS管理器,找到你要配置的目标网站
- 在IIS功能区域,双击错误页选项
- 在右侧操作面板点击添加,弹出添加自定义错误页的窗口
- 状态代码填
404,响应类型选择文件,点击浏览选中你的自定义404页面(比如xxx.htm),然后点确定 - 返回错误页列表,选中刚添加的404规则,点击右侧的编辑功能设置
- 将错误模式改成自定义,点击确定保存配置
参考web.config配置代码
<system.webServer> <httpErrors errorMode="Custom" existingResponse="Auto"> <error statusCode="404" subStatusCode="" prefixLanguageFilePath="" path="xxx.htm" responseMode="File" /> </httpErrors> <!-- 可选配置:移除暴露IIS版本的响应头 --> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer>
内容的提问来源于stack exchange,提问作者Cory
相关产品推荐
相关产品推荐

