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

不安全部署:路径规范化冲突(Fortify)——IIS服务器web.config配置求助

修复IIS中「不安全部署:路径规范化冲突」问题

核心原因

这类问题源于IIS与应用程序对URL路径的规范化逻辑不一致——攻击者可通过构造编码或变形的路径(如../、%2e%2e/、./等),绕过IIS或应用的访问控制规则,访问未授权的目录或文件。

具体修复配置(web.config)

通过以下web.config设置强制统一路径解析逻辑,拦截恶意路径请求:

  1. 启用IIS严格路径检查与请求过滤
    在<system.webServer>节点下添加或修改请求过滤规则,禁用双重转义并开启严格路径校验:
<system.webServer>
  <security>
    <requestFiltering allowDoubleEscaping="false" enableStrictChecking="true">
      <hiddenSegments>
        <!-- 可添加需要隐藏的敏感目录,比如bin、App_Code等 -->
        <add segment="bin" />
        <add segment="App_Code" />
      </hiddenSegments>
    </requestFiltering>
  </security>
</system.webServer>
  1. 配置URL重写拦截恶意路径
    若你的服务器已安装URL重写模块,添加规则拦截包含路径遍历特征的请求:
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Block Path Traversal" stopProcessing="true">
        <match url="^(.*)(\.\./|\%2e\%2e/|\./|\%2e/)(.*)$" ignoreCase="true" />
        <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Invalid path" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
  1. 限制ASP.NET请求路径非法字符
    在<system.web>节点下配置httpRuntime,强化路径字符校验:
<system.web>
  <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\,?" />
</system.web>

额外防护措施

  • 应用层二次校验:不要完全依赖IIS的过滤,在应用代码中对用户传入的路径参数做规范化处理(比如使用Path.GetFullPath()后对比允许的根目录),确保请求路径在授权范围内。
  • 更新组件:确保IIS、.NET Framework(或ASP.NET Core)及应用依赖的框架处于最新版本,修复已知的路径解析漏洞。
  • 权限控制:给IIS应用池用户设置最小权限,仅允许访问应用所需的目录,即使路径绕过成功也无法读取或执行敏感文件。

验证方法

  • 手动构造测试请求,比如http://your-app-domain/%2e%2e/web.config或http://your-app-domain/../secret/file.aspx,确认服务器返回403 Forbidden。
  • 重新运行Fortify WebInspect扫描,确认该漏洞项已被修复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 12:33:16