检查复杂字符串中是否出现|

2024-06-08 06:02:42 发布

您现在位置:Python中文网/ 问答频道 /正文

基本要求是我需要在naxsiweb应用程序防火墙白名单的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中检查此条件是否匹配的简单方法是什么


Tags: urljstdoptionmzcolgroupwlth
1条回答
网友
1楼 · 发布于 2024-06-08 06:02:42

尝试在要查找的管道前面加一个反斜杠\

例如,egrep '\|\|'将匹配无效规则的示例,但不匹配有效规则的示例

注意基本正则表达式和扩展正则表达式(BRE和ERE),您需要一个反斜杠来表示ERE,而不是BRE。grep使用BRE、egrep和awk,python和perl使用ERE就管道字符而言,sed使用BRE,除非您拥有并使用ERE的-r选项

相关问题 更多 >

    热门问题