2015-11-09 51 views
0

的基本要求是,我需要找到NAXSI Web应用防火墙的白名单的BasicRule|发生检查是否出现|在一个复杂的字符串

BasicRule wl:1015 "mz:$URL:/js/));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,|URL"; 

是因为在$URL正则表达式||无效规则

BasicRule wl:1015 "mz:$URL:/js/));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize(Nt._default=[1,|URL"; 

有效

NAXSI白名单的语法如https://github.com/nbs-system/naxsi/wiki/whitelists所述

有什么简单的方法来检查,如果在egrep/sed/awk/perl/python此条件匹配,例如

回答

1

尝试把一个反斜杠\在管前|,你想找到。

例如,egrep '\|\|'将与您的无效规则示例匹配,但不符合您有效规则的示例。

小心基本的和扩展的正则表达式(BRE和ERE),您需要ERE的反斜线,但不需要BRE。 grep使用BRE,egrep和awk以及python和perl使用ERE,至于管道角色而言,sed使用BRE,除非您拥有并使用ERE的-r选项。

相关问题