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

Azure部署的.NET 8 API含"is not"字符串返回403问题求助

问题描述

我有一个部署在Azure服务器上的POST/PATCH API(基于C#、.NET 8),请求负载包含如下Employee类对象:

public class Employee
{
    [RegularExpression(@"^[^*$^`<>”'=!@]{1,100}$")]
    public string Name {get;set;}
   ...
}

当Name字段值为"this is not contact"时,API返回403 Forbidden;将值改为"this is nott contact"则返回正常。测试发现仅当字符串格式为"*** is not ***"(前后有内容、中间包含"is not")时会触发403,本地Docker环境下无此问题,怀疑是Azure存在"is not"关键词限制,请问需调整Azure的哪些设置?

补充测试结果:

  • "This is not a contact" → 403
  • "This is nnot a contact" → 200
  • "This am not a contact" → 200
  • "This is not" → 200
  • "is not a contact" → 200
  • "Anything is not anything" → 403
解决方案建议

根据测试结果,问题大概率源于Azure的Web应用防火墙(WAF)或应用服务的请求筛选规则拦截,可从以下几个方向检查调整:

  1. Azure Web应用防火墙(WAF)规则排查

    • 若API前端配置了Azure WAF(如通过应用网关、Front Door),检查是否启用了SQL注入、XSS相关的托管规则组。部分规则会误将"is not"判定为潜在SQL注入片段,触发拦截。
    • 进入Azure门户找到对应WAF资源,在「规则管理」中查看触发的具体规则,可给该规则添加例外项,允许含"is not"的请求负载通过;也可先将规则模式改为"检测",验证是否为WAF导致的拦截。
  2. 应用服务请求筛选设置调整

    • 登录Azure门户进入目标应用服务,找到「配置」→「常规设置」→「请求筛选」。
    • 检查是否手动添加了包含"is not"的拒绝规则,或启用了内置敏感词筛选逻辑,如有则删除对应规则或调整筛选范围。
  3. 查看应用服务诊断日志定位来源

    • 在应用服务的「监控」→「日志流」中查看实时请求日志,确认403响应的具体来源(是WAF返回还是应用自身返回),以此精准定位问题点。
  4. 排查应用服务安全限制与扩展

    • 检查应用服务「网络」→「访问限制」,确认无针对请求内容的限制规则;若安装了第三方安全扩展,需排查扩展的关键词拦截配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 05:42:35