描述:验证输入中使用的字节值是否属于operator参数指定的范围。此运算符匹配包含不在指定范围内的字节的输入值。


例:


#为请求参数强制执行非常严格的字节范围(仅限

#适用于不使用其他语言的应用程序

#比英语)。

SecRule ARGS“@validateByteRange 10,13,32-126”“id:178”

validateByteRange在用于检测NUL字节的存在时非常有用,这些字节没有合法用途,但通常用作规避技术。


#不允许NUL字节

SecRule ARGS“@validateByteRange 1-255”“id:179”

注意:您可以强制请求仅包含特定字节范围内的字节。这对于避免堆栈溢出攻击很有用(因为它们通常包含“随机”二进制内容)。默认范围值为0和255,即允许所有字节值。当使用multipart / form-data编码(文件上载)时,该指令不检查POST有效负载中的字节范围。这样做会阻止上传二进制文件。但是,在从这样的请求中提取参数之后,检查它们的有效范围。

validateByteRange类似于ModSecurity 1.X SecFilterForceByteRange指令,但由于它在规则上下文中有效,因此它有以下区别:


您可以为不同的变量指定不同的范围。

它有一个“事件”上下文(id,msg ....)

它在规则流程中执行,而不是内置的预检查。



Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor