铁柱学渗透05——正则表达式

一.初识SQL注入

注入攻击的本质:把用户输入的数据当做代码执行。
两个关键条件

  1. 用户能够控制输入。
  2. 原本程序要执行的代码,拼接了用户输入的数据然后进行执行。

SQL注入:就是针对于SQL语句的注入,也可以理解为用户输入的数据当成SQL语句的代码来执行。它是在1998年由一名叫rfp的黑客发表的一篇文章进入大众视野的。

二.什么是正则表达式

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。

简单来讲就是,通过一条独特的语句,来挑选符合条件的数据。如:字符串是否符合某一规则,从一个字符串中找出子字符串。
正则表达式特点:

  1. 灵活性,逻辑性和功能性都非常强。
  2. 可以迅速的用简单的方式达到字符串复杂的控制。
  3. 对于刚接触的人来说比较晦涩难懂

三.正则表达式的语法

在php中使用正则表达式要加/ /;

preg_match_all(正则表达式,匹配字符串,匹配到的东西放入数组)
//返回匹配次数
preg_repalce(正则表达式,替换成什么,匹配的字符串)

常用的转义字符:
\d: 代表所有数字。

\D: 代表所有非数字。

\s: 代表空白字符。

\S: 代表非空白字符.

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

\W:非单词字符。

字符合集【单个字符或字符区间】,用于匹配集合的字符
【a-z】:表示a-z,26个小写字母;
【0-9a-z】:表示0-9,10个数字和a-z,26个小写字母;
【135a-z】:表示1,3,5和a-z,26个小写字母;
【^0-9】:除了0-9之外的全部;

()=>整体 如 18代表1,8。(18)代表18;
\ => 转义字符;
| => 两页之间的选择;
^ => 开头的位置(在开头)(在中括号外);
$ => 结尾位置(在结尾)(在中括号外);
. => 通配符(除了换行之外);
.+ => +代表匹配一次或多次;
.* => *代表匹配0次或多次;

限定符:
{n} => 例如:0{8}只有连起来8个0才能被匹配到;
{n,} => 例如:0{2,}只有2个0以上才会被匹配到;
{n,m} => 例如:0{2,4}最少匹配到2个0,最多匹配4个0(默认匹配最多);

修饰符:
/i =>不区分大小写;
/A=>匹配规则必须从头开始;
/S=>将匹配一切字符;
/x=>正则表达式中空白字符会被忽略;

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