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

ASP.NET Core 8.0检测到危险Request.QueryString值的解决方法咨询

ASP.NET Core 8.0 解决请求查询字符串危险值拦截问题

方法一:全局关闭请求验证(不推荐,仅适用于完全信任请求来源的场景)

在Program.cs的服务配置中修改请求验证默认行为,允许所有请求包含危险内容:

builder.Services.AddControllers(options =>
{
    options.SuppressInputValidation = true;
});

注意:全局关闭会降低应用安全性,需谨慎使用

方法二:针对特定控制器/Action关闭验证

仅在需要的接口中禁用请求验证,可在控制器或Action上添加[RequestValidation]属性:

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("api/[controller]")]
public class DataController : ControllerBase
{
    [HttpGet]
    [RequestValidation(Enabled = false)]
    public IActionResult GetData([FromQuery] string filter)
    {
        // 业务逻辑处理
        return Ok(filter);
    }
}

方法三:针对特定参数允许危险内容

更精细的控制方式,仅对指定查询参数关闭验证,结合[FromQuery]和[AllowHtml]属性使用:

public IActionResult GetData([FromQuery][AllowHtml] string filter)
{
    // 业务逻辑处理
    return Ok(filter);
}

补充说明

ASP.NET Core的请求验证机制与.NET Framework完全不同,没有直接对应RequestValidationMode="2.0"的配置项,上述为官方推荐的替代方案。无论采用哪种方式,建议在接收参数后自行做内容转义或安全校验,避免XSS等风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:22:02