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

ASP.NET Core如何在Kestrel服务器中将allowDoubleEscaping设置为true

Kestrel 配置 allowDoubleEscaping 参数的方法

Kestrel 默认禁用双重转义请求解析,对应拦截报错信息如下:

The request contained a double escape sequence and request filtering is configured on the Web server to deny double escape sequences.

以下是两种合法配置方式,CreateDefaultBuilder 原生支持从配置文件读取该参数,也可通过代码硬编码配置:

方式1:代码硬编码配置

直接修改现有 UseKestrel 委托中的逻辑即可,注意区分.NET版本差异:

WebHost.CreateDefaultBuilder(args)
    .UseKestrel(options =>
    {
        // .NET Core 3.0 及更高版本写法
        options.Limits.RequestUriSettings.AllowDoubleEscaping = true;
        
        // .NET Core 2.x 版本写法
        // options.Limits.AllowDoubleEscaping = true;
    })
    .UseStartup<Startup>();

方式2:配置文件配置(使用CreateDefaultBuilder默认配置入口)

CreateDefaultBuilder 默认会加载 appsettings.json 中的Kestrel节点配置,无需修改C#代码,直接在配置文件中添加如下内容即可生效:

{
  "Kestrel": {
    "Limits": {
      "RequestUriSettings": {
        "AllowDoubleEscaping": true
      }
    }
  }
}

安全提示

开启 AllowDoubleEscaping 存在安全风险,攻击者可构造双重转义的请求路径绕过路径校验规则,触发路径遍历等攻击。如果必须开启该配置,建议额外添加自定义请求校验逻辑,对请求路径做白名单限制或恶意字符过滤,降低安全风险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:45:05