19

嗨,我有一个客户端正在尝试使用以下 http 标头向我们发布:

content-type: application/x-www-form-urlencoded
content-encoding: UTF-8

但是我们的 Web 应用程序防火墙一直在拾取它们并抛出错误:

消息:[file "/etc/httpd/modsecurity.d/10_asl_rules.conf"] [line "45"] [id "340362"] [msg "Atomicorp.com WAF 规则:ModSecurity 不支持内容编码并且无法检测到使用它进行攻击,因此必须阻止它。”] [严重性“警告”] 使用代码 501 拒绝访问(阶段 2)。需要匹配“rx ^Identity$”与“REQUEST_HEADERS:Content-Encoding”。行动:拦截(第 2 阶段)

有人想对这件事有所了解吗?

4

1 回答 1

37

这是无效的。content-encoding指定内容发布者使用的数据传输编码。UTF-8 不是内容编码,它是一个字符集。在content-type标题中指定字符集:

content-type: text/plain; charset=utf-8

例如,有效的内容编码值是gzip, deflate。HTTP客户端应在标头中指定其支持的内容编码accept-encoding;HTTP服务器将回复一个content-encoding标头。

于 2013-06-17T19:11:30.353 回答