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

ASP.NET Core Web API Fortify扫描问题修复咨询

针对Fortify扫描出的ASP.NET Core Web API问题的修复方案

1. Mass Assignment:Insecure Binder Configuration(高优先级)

Fortify检出该问题的核心原因是:ASP.NET Core默认会自动绑定模型的所有公开属性,存在潜在批量赋值风险——若后续扩展CreateRequestModel新增属性,攻击者可能构造额外请求参数,对未预期的属性进行赋值。以下是针对性修复方案:

方案一:用[Bind]特性显式指定允许绑定的属性

直接在Action参数或模型类上标记允许绑定的字段,严格限定输入范围:

// 在Action参数上添加Bind特性
[HttpPost]
public async Task<IActionResult> Create([Bind(nameof(CreateRequestModel.Name), nameof(CreateRequestModel.User))] CreateRequestModel model)
{
    bool status = await _service.Create(model);
    return Ok(status);
}

或在模型类上全局配置:

[Bind(nameof(Name), nameof(User))]
public class CreateRequestModel
{
    public string Name { get; set; } = default!;
    public string User { get; set; } = default!;
}

方案二:输入DTO与业务模型分离

创建仅包含前端需传递字段的输入DTO,再手动或通过映射工具转换为业务模型,从根源隔离输入与业务逻辑:

// 输入专用DTO
public class CreateRequestDto
{
    public string Name { get; set; } = default!;
    public string User { get; set; } = default!;
}

// Action中使用DTO
[HttpPost]
public async Task<IActionResult> Create(CreateRequestDto dto)
{
    // 手动映射到业务模型(也可使用AutoMapper等工具)
    var model = new CreateRequestModel
    {
        Name = dto.Name,
        User = dto.User
    };
    bool status = await _service.Create(model);
    return Ok(status);
}

2. ASP.NET MVC Bad Practices:Controller Action Without AntiForgery Validation(低优先级)

该问题是Fortify基于MVC场景的默认检查,但纯Web API场景下,传统Cookie-based防伪造验证通常不适用(多为服务间调用或使用JWT/API Key认证)。修复方案如下:

方案一:禁用单个Action或全局的防伪造验证

若API仅面向非浏览器客户端(如后端服务、移动端),可直接禁用验证:

// 单个Action禁用
[HttpPost]
[IgnoreAntiforgeryToken]
public async Task<IActionResult> Create(CreateRequestModel model)
{
    bool status = await _service.Create(model);
    return Ok(status);
}

若所有API都不需要防伪造验证,可全局配置:

// .NET 6+ Program.cs
builder.Services.AddControllers(options =>
{
    options.Filters.Add(new IgnoreAntiforgeryTokenAttribute());
});

方案二:标记为Fortify误报

若API已通过JWT、API Key等方式完成身份认证,且确认无浏览器客户端调用,可在Fortify扫描结果中将该问题标记为误报——传统防伪造逻辑不适用于纯服务间的API场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:57:50