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

IIS 10.0含'null'字符串请求跳转至根域问题排查求助

排查IIS 10.0与根web.config导致请求含'null'时跳转根域名的问题

核心排查方向:IIS安全模块与web.config配置

1. 检查IIS请求筛选(Request Filtering)模块

  • IIS默认的请求筛选会拦截带潜在风险的字符,单引号常被识别为SQL注入风险字符,部分场景会触发重定向或拦截。
  • 操作步骤:
    • 打开IIS管理器,进入目标站点的请求筛选功能
    • 查看规则标签下是否有针对单引号或'null'字符串的自定义拦截规则
    • 检查查询字符串标签,确认是否存在相关限制
    • 临时禁用可疑规则,测试问题是否消失

2. 核对根web.config的安全相关配置

重点检查以下节点:

  • <httpRuntime>:确认requestValidationMode是否为4.6默认的4.5,若改成2.0会改变验证逻辑;同时查看requestPathInvalidCharacters是否包含单引号(默认包含,但跳转而非报错的情况需结合其他配置判断)
  • <system.webServer>下的<security>:
    • <requestFiltering>里的<denyUrlSequences>是否包含'null'或单引号相关规则
    • 其他安全模块配置(如<ipSecurity>)是否有触发跳转的逻辑
  • <rewrite>节点:检查是否存在URL重写规则,当请求包含'null'时自动重定向到根域名(本地环境通常不会配置这类生产级重写规则,所以无异常)

3. 排查IIS URL重写模块

这类无差别跳转大概率和重写规则有关:

  • 进入站点的URL重写功能,逐一查看所有规则,重点找匹配单引号或'null'字符串的规则
  • 确认规则的操作是否为Redirect到根域名
  • 临时禁用所有重写规则测试,若问题解决则定位到具体规则

4. 对比本地与服务器环境差异

本地和生产环境的配置差异是关键:

  • 本地IIS是否开启了请求筛选?web.config配置是否和服务器完全一致?
  • 服务器是否安装了本地没有的IIS模块(如URL重写、Application Request Routing)?
  • 服务器的.NET Framework 4.6补丁版本是否和本地一致?后续补丁可能影响请求处理逻辑

5. 用失败请求跟踪精准定位

开启IIS的失败请求跟踪:

  • 启用后捕捉跳转发生时的请求日志,查看是哪个模块(如RequestFilteringModule、RewriteModule)触发了跳转,直接锁定问题根源

补充验证

你提到URL编码%27null%27可解决问题,说明核心是原始字符串中的单引号触发了服务器的拦截/重写逻辑——编码后单引号被转义,不会触发规则,这也进一步佐证问题来自IIS或web.config的安全、重写配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 13:43:22