正则表达式(正则表达式)的错误使用导致功能的脆弱性分析

正则表达式(正则表达式)的错误使用导致功能的脆弱性分析
在单词前面写

它强大的字符串匹配函数的正则表达式,现在在各种编程语言中非常流行!它是用来描述或匹配一个字符串的字符串符合一定的语法规则。许多正则表达式被用来听到这个,然后在网上搜索的时候都会使用它。一些人开始学习正则表达式从一开始使用的系统,从系统的定义原理的学习。因为,对于初学者来说,感觉太麻烦了,很多原来的特征。这是一个头痛看到长字符串。所以,你不必学习。一般的问题,直接在网上搜索,例如:邮箱的正则表达式,手机号码的正则表达式,URL正则表达式…我们发现一个有趣的现象。邮箱正则表达式如何多种多样URL正则表达式也不同。They are all recommended. 他们都说他们是对的。什么是正确

从不同的正则表达式中,我们可以得出2个结论:第一,正则表达式非常灵活,许多方法都能达到同样的结果(条条道路通罗马)。二,正则表达式匹配结果需要验证。复杂正则表达式很可能会产生错误匹配。让我们来看一下正则表达式的常用用法,并创建函数漏洞的例子。希望大家注意我们使用的时间。下面的示例,从我的工作回顾代码中,经常出现示例,欢迎朋友们添加!

缺少分隔符
< PHP
检查用户名是唯一的字符变化,和数字

用户名=chengmo8 ;

如果(!preg_match( / / 0-9a-za-z } + {
{
退出(用户名错误)!;
}
这是很常见的,因为没有分隔符,正则表达式搜索,为用户,一个字符从左到右的搜索,找到满足条件的字符会匹配制导,并返回true,将继续实施这一计划。我们测试的用户名输入:chengmo8,chengmo8!# chengm美元,和中国cadadf,可以匹配成功。它似乎限制可以添加到用户名称的字符数。事实上,由于缺乏一个限定符的正则表达式,可以注册,只要字符串包含字母和数字。我们需要的是,字符串必须是字母加数字的开始最后。正则表达式应该是:^ { 0-9a-za-z } + $,看似简单,从A到Z字符匹配的时间,别忘了性格^美元。匹配输入字符的开始与一个匹配的字符结束(在默认换行符)

这是经常做的,手机号码,邮箱,网址,注册用户名,密码等。你需要有一个合格的符号!

方括号字符中的字符{使用错误

在正则表达式中,原公共字符的正则表达式(。*在字符的方括号中为普通字符。在方括号中表示特殊字符、字符,只有3个字符有特殊字符。其中,字符,在左括号第一个字符,字符不在代表中所有字符后面!

例如,^ { 0 }不能0字符。如果是:{ 0 ^ },代表包含0 ^性格。因为:^不是左括号右特征。它的普通词一样的字符表示一个范围内的字符,如:{ }代表0-9匹配0到9的直接特征。转义字符,如果你想匹配的字符,可以{ 0 9 },如果你想匹配,它可以:{ 0 9 },代表3的09个字符,事实上,这是因为很多朋友经常错误的特殊字符时,使用方括号。
< PHP
检查用户名是唯一的字符变化,和数字

= $代码;

匹配字符范围包含。*
preg_match( / {,} + /

只是,字符范围包含一个到Z 26个字符。
preg_match( / / } + { A-Z

公共字符范围包含A到Z,实际上是从默认的ASCII表,一个字符到Z字符,总共有48个字符。
preg_match( / / } + { A-Z

只是,字符范围包含一个A到Z是相应的ascill码,16进制
preg_match( / / x41-x7a } + {

只想匹配字符串和
preg_match( / / {和}
实际上,所有都包含一个x,n,d,所有字符,不管顺序
红色经常被误解,只匹配和,一旦添加到{ }字符,它可以被理解为一个字符集的所有字符。它的任何字符可以匹配,没有关系的顺序!如果你真的需要这类比赛,按字符,如和| BND将匹配的字符串,或和字符串。|字符、字符串或操作者的左、右两侧连续的字符串将被组合成一个整体的比赛。

好了,今天整理一下,正则正则表达式,2个常见错误。欢迎大家交流!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部