二、web安全前后端基础(5)php后端基础——正则表达式

1、php自检

检查sql语句是否正确,echo '执行的sql语句是'.$sql;

在没有回显时,用var_dump()测试回显,有数据返回,则返回object类型,没有数据返回,得到bool型

 

sql注入万能密码    '' or 1=1   'or 1='1      1'or'1'='1 

注释符号-- qwe

 

2、SQL注入

本质:用户输入数据被当做SQL代码执行

漏洞的认证:要求能获取数据或者表库结构或者绕过登录

过滤:属于防止黑客攻击的普遍手段,把用户输入数据进行筛选 ,常用正则表达式

 

一、正则表达式

php中使用正则规则要添加代表正则的标识//

1、php中的正则表达式

(1)preg_match_all(正则表达式,匹配字符串,匹配到的东西放到数组)

返回匹配到的次数

(2)

2、正则表达式语法

(1)字符

数字:\d

非数字:\D

空白字符(空格、制表符、换页符等):\s

非空白字符:\S

单词字符(26个英文字母+数字+下划线_):\w

非单词字符:\W

应用链接:网站注册账户时,只允许输入26个英文字母+数字+_

 

过滤GET请求中有非单词的请求

二、web安全前后端基础(5)php后端基础——正则表达式_第1张图片

GET请求中输入两个单引号

二、web安全前后端基础(5)php后端基础——正则表达式_第2张图片

 

(2)自定义字符集合

·字符集合:[单个字符或者字符区间],用于匹配集合内字符

[a-z]表示a-z这26个小写字母

[0-9a-z]表示0-9这10个数字和a-z这26个小写字母

[135a-h]表示数字1,3,5和字母a-h这8个小写字母

ps:两个不同字符段不要使用,隔开

·非集合:[^单个字符或者字符区间],用于匹配非集合内字符

[^0-9]表示匹配所有非数字字符

[^a-zA-Z]表示匹配所有非字母字符

 

(3)关键字

() =>代表一个整体

^ =>匹配输入字符串开始的位置    /^a/以a开头

$ =>匹配输入字符串结尾的位置   /a$/以a结尾

/^[0-9]$/限制只能输入一个数字

. =>通配符,表示任意字符   

通配符,windows中是*,sql中是%

* =>匹配任意次数,可以是0次

二、web安全前后端基础(5)php后端基础——正则表达式_第3张图片

二、web安全前后端基础(5)php后端基础——正则表达式_第4张图片

+ =>匹配一次或多次

二、web安全前后端基础(5)php后端基础——正则表达式_第5张图片

二、web安全前后端基础(5)php后端基础——正则表达式_第6张图片

\ =>转义字符       eg:\. 表示.

| =>两项之间的一个选择 or的意思

匹配出现http的网址

二、web安全前后端基础(5)php后端基础——正则表达式_第7张图片

 

{   } =>限定符

{n}       0{8}   表示只有8个连续的0才会被匹配

{n, }      0{2,}   还要有2个0及以上的就会被匹配

{n,m}     0{2,4}   最少匹配2个0,最多匹配4个0

ps:被匹配时,默认匹配最多的次数

 

(4)修饰符

写在/  /后,可以单一使用,可以混合使用

/i => 不区分大小写

/A =>匹配规则必须从头开始匹配

/s =>  . 将匹配一切字符串

/x => 正则表达式中空白字符将会被忽略

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(正则表达式,web安全前后端基础,正则表达式,字符串,php)