前一个:正则表达式(正则表达式)的误用导致了函数漏洞。我们继续梳理,正则表达式的误用导致了函数设计漏洞(bug)。做网络工作有很多知识需要掌握。网站开发的工作在国内只持续了10多年,很多开发者都经历了培训(自学)-模仿-做项目的过程。他们中的许多人在修改后成为了网络开发工程师。这一行比较低级,很容易上手。但要成为大师并不容易。需要学习和掌握几十个知识。对于刚刚起步的人来说,往往缺乏系统的学习和理论支持。导致一些心脏的改善是无法做到的!所以在功能设计上有这些或多或少的漏洞是很常见的!
好吧,有点跑题了。这种漏洞在进行代码演练时经常出现。让我们来看看,下面的代码:
?Php$user='bcd123页三张';///abc和bcd出现在匹配的用户名中,后跟数字字符preg _ match _ all ('/ABC | BCD d/',$ user,$ match);var _ dump($ match);/*结果是array(1){[0]=array(1){[0]=string(6)' bcd 123 ' } } */查找所有以abc或BCD开头并后跟数字字符串的页面。通过以上,我们可以看出bcd123匹配正确。如果我们输入33,360美元用户=“ABC 123张三张”,我们会发现它无法匹配。原因是“|”,优先级最低。上面的文字将变成:匹配abc或bcdd字符串。
在上图中,|包含在()。
如果您想提高优先级,您可以(abc|bcd)d,匹配所有abc或bcd字符串,后跟数字。使用“|”字符串时,请注意它的低优先级。如果想优先匹配,可以放在()。