【发布时间】:2021-12-16 10:28:12
【问题描述】:
我们在 Azure API 管理(内部 VNET 模式)中托管的 REST API 只能通过 Azure 应用网关 (WAF v2 SKU) 从 Internet 访问,并在 WAF 中启用 OWASP CRS 3.1 规则。然而,有一个渗透测试观察表明,黑客可以通过调用 Content-Type 标头为“application/xml”的 POST API 来绕过 WAF 规则,但仍会在请求正文中发送恶意 JSON 负载。在这种情况下,WAF 不会拦截请求并且 API 返回 HTTP 200,这与 Content-Type 作为“application/json”发送的情况不同,WAF 会阻止相同的恶意负载,返回 403(禁止)。即使请求标头 Content-Type 标头为“application/xml”,是否有任何方法可以阻止 App Gateway/WAF 中的恶意 JSON 有效负载?或者这个验证,传入的请求是否有“application/json”以外的Content-Type,是否需要在API端进行处理?
【问题讨论】:
-
我从下面的答案中得到了一个解决方案,虽然看起来这个解决方案会导致在 WAF 级别阻止所有 XML 请求,这可能不是所有情况下的最佳解决方案。我在答案的评论中添加了一个后续问题。否则,这可以在 APIM 中通过阻止“application/json”以外的任何内容类型的策略来解决,并且该策略将仅应用于那些只需要 JSON 有效负载的特定 API。
-
您可以将其添加为答案并接受它,以便对可能面临相同问题的其他社区成员有所帮助。
标签: azure security azure-api-management azure-application-gateway web-application-firewall