绕过此正则表达式

问题描述 投票:0回答:1

有人可以详细阐述以下正则表达式吗?>

/^[a-zA-Z0-9-_=+/]{8,64}$/

据我了解

^-声明字符串的开头

[a-zA-Z0-9匹配A-Z,a-z,0-9]

-_=+/我唯一了解的是它与任何字符-_=+/]匹配>

8-64字符长度

我已经在https://regex101.com/上运行了此正则表达式,由于+之后的最后一个斜杠,它给出了一个错误,但由于我在javascript中使用过此正则表达式(使用Joi包),因此它工作正常,并且效果很好,您还可以测试用javascript正则表达式测试器(https://www.debuggex.com/

我想做什么?

所以我想绕过此正则表达式来执行命令注入,例如abcdefgighj; id,因为不允许使用;,并且我不理解最后一部分,所以将不胜感激。]

有人可以详细说明以下正则表达式/ ^ [a-zA-Z0-9 -_ = + /] {8,64} $ /根据我的理解^-断言字符串a-zA-的开始Z0-9匹配AZ,az,0-9 -_ = + /唯一...

您的正则表达式中有一个隐藏的错误,下面突出显示:

/^[a-zA-Z0-9-_=+/]{8,64}$/
           ^^^

[最有可能,正则表达式的作者打算使-成为有效出现的字符之一。但是,如所写,该模式包括字符9-_range

。这包括所有大写字母以及少数符号。要解决此问题,请将破折号移到字符类的末尾:
/^[a-zA-Z0-9_=+/-]{8,64}$/

或者,更好的是,您可以尝试转义破折号,并将其他所有内容保持原样:

/^[a-zA-Z0-9\-_=+/]{8,64}$/
regex regex-lookarounds
1个回答
0
投票

您的正则表达式中有一个隐藏的错误,下面突出显示:

© www.soinside.com 2019 - 2024. All rights reserved.