我们在Cloudflare防火墙后面有一个Azure Api管理实例。最近,我们收到了一个报告,报告的是客户端在后端API的POST上出错。
[事实证明,请求被压缩(内容编码为gzip),并且由于主体部分包含base64编码的内容,因此Cloudflare防火墙将其识别为威胁,因此阻止了它。
我们有几个选项可以解决这个问题,但是第一个选择是看看我们是否可以在APIM中解决此问题,因为发送gzip压缩内容的不同(移动)客户端将遇到此问题。
最理想的解决方案是拦截一些有关压缩的协商,在该协商中,我们可以仅对该请求返回false。但是我找不到这种东西,也不确定对客户的影响。
APIM中还有其他选项可以强制客户端不要发送gzip压缩请求吗?
使用设置标头策略来适当设置Content-Encoding标头的值。它将触发APIM中的内部逻辑来解压缩/压缩请求内容。在入站部分执行此操作,以更改进入后端的请求,在入站部分进行更改以更改对客户端的响应。