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

如何防范伪造Content-Type绕过Azure App Gateway WAF规则的攻击?

解决方案说明

针对该WAF绕过场景,可分别在Azure应用网关WAF v2层、APIM/API侧实现拦截,优先在WAF层处置,结合上层校验实现纵深防御:

一、WAF层拦截方案(优先选择)

  • 针对仅支持JSON格式的API接口,直接配置WAF自定义规则做Content-Type强制校验:
    匹配所有发往目标API路径的POST请求,若Content-Type请求头的值不为application/json,直接触发拦截返回403,从根源避免篡改Content-Type的绕过行为。
    自定义规则逻辑参考:
    匹配条件:
    1. 请求方法 = POST
    2. 请求URI 匹配目标API路径规则
    3. 请求头 Content-Type 不等于 application/json
    动作:拦截
    
  • 若存在同时支持XML、JSON格式的API,可开启WAF多载荷解析能力:
    在WAF策略的OWASP CRS规则配置中,开启对application/xml类型请求的JSON格式扫描能力,WAF会尝试对请求体做多格式解析,只要匹配到JSON恶意特征,无论Content-Type声明为何种类型,都会触发拦截。
  • 补充自定义正则规则兜底:
    新增规则匹配Content-Type为application/xml、但请求体存在明确JSON特征(如以{/[开头、包含JSON键值对格式)的请求,直接拦截,规则参考:
    匹配条件:
    1. 请求方法 = POST
    2. 请求头 Content-Type 包含 application/xml
    3. 请求体 匹配正则 ^\s*[{[]
    动作:拦截
    

二、APIM/API侧补充校验(纵深防御必备)

  • 在APIM入站策略中新增Content-Type校验逻辑,针对每个API声明支持的请求格式做校验,仅允许符合要求的Content-Type请求进入转发流程,不符合的请求直接返回400错误,无需转发到后端。
  • 针对Content-Type声明为XML的请求,新增格式校验逻辑:若请求体无法正常解析为XML格式,直接拒绝请求,彻底避免Content-Type与实际载荷不匹配的问题。
  • 后端API本身保留载荷格式校验能力,作为最后一道防御线,不依赖上游WAF的拦截结果。

注意:若开启WAF多格式解析能力,需提前做充分的灰度测试,避免误拦截合法XML请求中包含JSON片段的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:07