操作符(Actions) “t”的说明:
该功能用于在规则里用指定的功能转换变量,例如
t:lowercase 就是将变量转换为小写模式
t:removeWhitespace 即将输入里的空格移除
请看下面这个例子:SecRule ARGS:p "@beginsWith zdbase" deny,status:500,t:lowercase
这个例子就是参数如果以zdbase开头,则不允许访问,并返回错误码500,即内部服务器错误,而这里使用了t:lowercase,所以,它是将输入转化为小写模式,所以参数p以ZDBASE开头,仍然会被过滤,如果不加t:lowercase,则以ZDBASE开头是不过滤的,当然以Zdbase开头也不过滤
一般情况下,在默认配置中均开启t:lowercase功能,即
SecDefaultAction log,auditlog,deny,status:403,phase:2,t:lowercase,t:replaceNulls,t:compressWhitespace
这里就定义了输入运用小写转换功能和替换NULL bytes
还有一点值得注意的是t:none,该功能会在指定的规则里移除所有转换功能,例如:
SecRule ARGS:p "@beginsWith zdbase" deny,status:500,t:none
该规则会移除所有的转换功能,所以默认配置里有t:lowercase,这里如果参数p以Zdbase开头也不过滤,只有以zdbase开头才会拦截,因为该规则移除了所有的转换功能。