MULTIPART_STRICT_ERROR
当以下任何变量被设置为1时,MULTIPART_STRICT_ERROR也将被设置为1:
REQBODY_PROCESSOR_ERROR,MULTIPART_BOUNDARY_QUOTED,MULTIPART_BOUNDARY_WHITESPACE,MULTIPART_DATA_BEFORE,MULTIPART_DATA_AFTER,MULTIPART_HEADER_FOLDING,MULTIPART_LF_LINE,MULTIPART_MISSING_SEMICOLON MULTIPART_INVALID_QUOTING MULTIPART_INVALID_HEADER_FOLDING MULTIPART_FILE_LIMIT_EXCEEDED。
这些变量中的每一个都涵盖了multipart/form-data格式的请求体的一个不寻常(尽管有时是合法的)方面。策略中应始终包含一个规则,以检查此变量(更简单)或一个或多个单个变量(如果您确切知道要完成的内容)。根据误报率和默认策略,您应该决定是否阻止或仅在触发规则时发出警告。
使用此变量的最佳方法如下例所示:
SecRule MULTIPART_STRICT_ERROR "!@eq 0" \
"phase:2,id:30,t:none,log,deny,msg:'Multipart request body \
failed strict validation: \
PE %{REQBODY_PROCESSOR_ERROR}, \
BQ %{MULTIPART_BOUNDARY_QUOTED}, \
BW %{MULTIPART_BOUNDARY_WHITESPACE}, \
DB %{MULTIPART_DATA_BEFORE}, \
DA %{MULTIPART_DATA_AFTER}, \
HF %{MULTIPART_HEADER_FOLDING}, \
LF %{MULTIPART_LF_LINE}, \
SM %{MULTIPART_MISSING_SEMICOLON}, \
IQ %{MULTIPART_INVALID_QUOTING}, \
IQ %{MULTIPART_INVALID_HEADER_FOLDING}, \
FE %{MULTIPART_FILE_LIMIT_EXCEEDED}'"
在ModSecurity v2.1.3中升级了multipart/form-data解析器以主动查找是否有尝试绕过规则的迹象。添加了许多变量(如上所列)以暴露在解析过程中发现的各种情况。MULTIPART_STRICT_ERROR变量可以方便地立即检查所有异常情况。各个变量允许根据具体情况对检测进行微调来减少误报。
Created with the Personal Edition of HelpNDoc: Easy EPub and documentation editor