描述:通过提供的正则表达式,对指定的变量进行匹配检测。rx是默认运算符,所有未明确指定运算符的规则都将默认使用@rx作为运算符。


例子:


#检测Nikto

SecRule REQUEST_HEADERS:User-Agent "@rx nikto" phase:1,id:173,t:lowercase


#使用不区分大小写的模式检测Nikto

SecRule REQUEST_HEADERS:User-Agent "@rx (?i)nikto" phase:1,id:174,t:none


#使用不区分大小写的模式检测Nikto

SecRule REQUEST_HEADERS:User-Agent "(?i)nikto" "id:175"


正则表达式由PCRE库http://www.pcre.org处理。ModSecurity使用以下设置编译其正则表达式:


整个输入被视为单行,即使存在换行符也是如此。

所有匹配都区分大小写。如果您希望执行不区分大小写的匹配,可以使用小写转换函数或强制不区分大小写的匹配,方法是在正则表达式模式前加上(?!)修饰符(一个PCRE功能;可以在PCRE文件中发现许多类似的功能)。

PCRE_DOTALL和PCRE_DOLLAR_ENDONLY标志在编译期间设置,这意味着单个点将匹配任何字符,包括换行符,并且$ end锚点将与尾随换行符不匹配。

正则表达式是一个非常强大的工具。强烈建议您阅读PCRE文档以熟悉其功能。


注意:此运算符支持“捕获”操作。



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