网络安全从零开始(后端基础PHP 正则表达式)

一、初识SQL注入

SQL注入是1998年一名叫做rfp的黑客发表的一篇文章所进入大众视线的
什么是注入:
	注入攻击的本质,是把用户输入的数据当做代码执行
	这里有两个关键条件:
		第一个是用户能够控制输入
		第二个是原本程序要执行的代码,拼接了用户输入的数据然后进行执行
什么是SQL注入:
	就是针对SQL语句的注入,也可以理解为用户输入的数据当做SQL语句的代码执行了。

二、什么是正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式的特点:
	1.灵活性、逻辑性、功能性非常强
	2.可以迅速地用极简单的方式达到字符串的复杂控制。
	3.对于刚接触的人来说,比较晦涩难懂。
正则表达式用途:
	判断字符串是否符合某一规则(判断是否符合手机号、邮箱规则)
	从一个字符串中找出符合规则的所有子字符串(取HTML标签名)

三、PHP中正则表达式常用函数

PHP中使用正则规则一定要加代表正则的标识/  /
Preg_match_all(正则表达式、匹配字符串、匹配到的东西放入数组)
返回匹配到的次数
Preg_replace(正则表达式、替换成什么、匹配字符串)
返回替换后的结果
替换支持数组格式

四、正则表达式语法

常用转义字符:
	数字:\d
	非数字:\D
	空白字符(空格、制表符、换页符):\s
	非空白字符:\S
	单词字符(26个英文字母+数字+下划线_):\w
	非单词字符:\W
自定义字符结合:
	字符集合:【单个字符或字符区间】,用于匹配集合内字符
		如:
			【a-z】表示a-z这26个小写字母
			【0-9a-z】表示0-9这10个数字和a-z26个小写字母
			【135a-h】表示包含数字1,3,5和数字a-h这8个字母
			注意:两个不同字符段间请勿使用,隔开。
	非集:【^单个字符或字符区间】,用于匹配非集合内字符。
		如:
			【^0-9】表示匹配所有非数字字符
			【^a-zA-Z】表示匹配所有非字母字符
关键字:
	()   =>和数字一样很像,代表这是一个整体
	^   =>匹配输入字符串的开始位置
	$   =>匹配输入字符串的结尾位置
	.   =>通配符【代表任意字符】【不匹配换行】
	*   => 匹配0次或多次
	+   =>匹配1次或多次
	 \   =>转义字符
	 |   =>两项之间的一个选择
限定符:
	{n}   => 例如:0{8}  意思是指只有连起来8个0才会被匹配
	{n,}   =>例如:0{2,}  意思是只要有2个0及以上的就会被匹配
	{n,m}  => 例如: 0{2,4} 意思是最少匹配2个0,最多匹配4个0
	注:被匹配时,默认匹配最多的次数
修饰符:
	/i   =>不区分大小写
	/A   =>匹配规则必须从头开始匹配
	/s   =>将匹配一切字符
	/x   =>正则表达式中的空白字符会被忽略
这里只是一些常见的或者常用的正则语法。

你可能感兴趣的:(安全)