实施cloudflare后,我收到一些网址警告:
Request argument containing Nul byte
用于URL:
/controllers/action?name=test%20file
/controllers/action?name=2016July&sku=test
根据我的理解,php中的null
字节为%00
,但我仍会收到%20
和2016
的提醒,如上面的网址所示。
有什么方法可以避免这种情况吗?或者我是否需要修改cloudflare中的任何规则?
答案 0 :(得分:1)
要解决此问题,您需要在CloudFlare WAF中禁用Null字节规则。幸运的是,CloudFlare允许您精确地自定义WAF中的规则和不可用的规则(不仅仅是规则集)。
Null字节位于CloudFlare Specials中。
首先点击CloudFlare中的防火墙标签:
然后在“Package:CloudFlare Rule Set”部分中选择“Rule Details”切换:
在该部分的底部,您将看到“高级”选项:
然后,您可以搜索短语“Nul”或确切的规则ID(即100011)来查找此WAF规则。然后,您可以更改配置,使其不再阻止请求,而是选择“模拟”(仅记录),“质询”(当前验证码页面)或“禁用”(不言自明):
CloudFlare关于why CloudFlare uses a Heuristic-based approach to it's WAF的博客有一个解释。