SQL注入是指web应用程序对用户输入数据的合法性没有判断或者过滤不严,攻击者可以在web应用程序中实现定义好的查询语句的结尾上添加额外的sql语句,在管理员不知情的情况下实现非法操作,依次来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
web应用程序三层架构:视图层 + 业务逻辑 + 数据访问层
数据库分类
1.关系型数据库
2.非关系型数据库
Mysql数据库的注入
数据库层级关系:
服务器里
多个数据库
多个数据表
多个行 列 字段
数据
show database; //查询所有的数据库 use 数据库名称 //选中某个表
合并查询的特性
1.前面的查询语句和后面的查询语句互不干扰
2.前面的查询语句的字段数量和后面的查询语句字段数量要一致
最重要的几张表
information_schema中的三张表
schemata:保存当前整个服务器所有的数据库信息 库名
tables:保存当前整个服务器中所有的表名信息 表名 table_name
columns:保存当前服务器中所有的字段名 字段名字 column_name
实战思路
根据数据库类型要区分开
GET类型:通过url 数据长度 速度快
POST类型:通过服务器 安全性 数据量