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

IIS 10请求过滤配置无效,如何防范路径遍历攻击?

IIS 10路径遍历防护配置无效的问题排查与修正

请求过滤配置的核心问题

直接添加“..”作为拒绝字符串/序列无法生效,是因为IIS会预先对URL进行规范化处理:比如将../../css/test.txt转换为对应物理路径,或是把编码后的%2e%2e解码,此时原始的“..”序列已被处理,简单字符串匹配无法命中。

修正步骤:

  • 切换到请求过滤的**“URL”选项卡**,禁用“允许双重转义”,阻止编码后的%2e%2e这类绕过方式。
  • 在“规则”选项卡创建正则表达式规则,用匹配模式(\.\./)+来捕获连续的上级目录跳转序列。
  • 确认applicationHost.config中已注册请求过滤模块:<add name="RequestFilteringModule" />

URL重写规则的错误点

你写的<em>/../</em>.*是HTML标签,不属于正则表达式语法,这是规则无效的直接原因。

正确配置:

  • 创建“阻止请求”规则,在“匹配URL”区域选择“使用正则表达式”,输入匹配模式:^.*(\.\./)+.*$
  • 添加条件检查原始请求路径:条件字段选{REQUEST_URI},匹配模式同样用^.*(\.\./)+.*$,避免IIS规范化后导致匹配失效。
  • 确认规则动作设置为**“中止请求”**,而非仅记录日志。
  • 检查IIS模块列表中RewriteModule已安装并启用。

测试与验证注意事项

  • 不要直接用浏览器测试,因为浏览器会自动规范化URL,建议用curl或Postman发送原始请求,比如:curl http://yourdomain/../../css/test.txt
  • 检查站点web.config是否继承了服务器级applicationHost.config的配置,避免局部配置被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:01:00