欢迎光临
我们一直在努力

网安必备基础 带你了解数据库基础安全(上)

网安必备基础 数据库基础安全-1

一、数据库的核心概念
1.1 什么是数据库
数据库的层级结构(类比学校)
1.2 数据库管理系统(DBMS)

二、 数据库连接操作
2.1 命令行连接(基于已有phpStudy的数据库)
2.2 Navicat可视化连接

三、数据库于表的创建
3.1 创建school数据库
方式1: Navicat可视化
方式2: 命令行
3.2 创建users学生表(存储账号密码)
方式1: Navicat可视化
方式2: 命令行

四、SQL核心操作:CRUD(增删改查)
4.1C(Create):新增数据(INSERTINTO)
4.2 U (Update):修改数据(UPDATE)
4.3D(Delete):删除数据(DELETE)
4.4R(Read):查询数据(SELECT,攻击者偷数据核心)
(1)查询所有数据
(2)按条件查询
(3)多条件查询
(4)模糊查询(LIKE+%)
(5)排序查询(ORDERBY)
(6)联合查询(UNION,SQL注入核心)

一、数据库的核心概念

1.1 什么是数据库

数据库是长期存储在计算机内、有组织、可共享的数据集合,解决海量数据管理问题(对比Excel:支持上亿条数据,多人同时操作且保证数据不混乱)

标题数据库的层级结构(类比学校)

层级类比示例
顶层: 数据库 整个学校 school库(存储校园所有数据)
中层: 数据表 学校不同部门 users表(账号密码)、classes表(班级信息)
底层: 字段+数据 表格表头+行内容 字段:ID(学号 )、name(姓名);数据:2025001、张三

1.2 数据库管理系统(DBMS)

数据库的“管家”,负责管理数据访问、存储规则,常见类型:

  • Oracle: 功能强、较复杂、收费,银行/电信常用;
  • SQL Server:适配Windows,政府单位常用;
  • MySQL(重点):开源免费、轻巧,校园系统/网站主流。
  • 二、 数据库连接操作

    2.1 命令行连接(基于已有phpStudy2018的数据库)

    核心指令(CMD执行,非MySQL交互界面)

    1 mysql -u root -p

    -u:指定⽤户名;
    -p:需要输⼊密码(输⼊时不显示,属正常现象);
    回⻋后输⼊密码root,再次回⻋即可登录。
    注: 在phpStudy2018找到一下位置,于地址栏中输入cmd,回车后再执行操作
    在这里插入图片描述

    在这里插入图片描述

    2.2 Navicat可视化连接

    1.打开Navicat一左上角「连接」一选择「MySQL」
    2.填写核心信息:
    主机:localhost(本地数据库);
    端口:3306(MySQL专属端口);
    用户名:root(超级管理员);
    密码:安装MySQL时设置的密码;(我这里用的是phpStudy,默认密码为root)
    3.点击「测试连接」,提示“连接成功’即完成;
    4.双击连接名,即可查看/操作数据库。
    在这里插入图片描述

    三、数据库与表的创建

    3.1创建school数据库

    方式1:Navicat可视化

    右键新建的MySQL连接一「新建数据库」>填写:
    数据库名:school;
    字符集:utf8(完整支持UTF-8);
    排序规则:utf8_general_ci一确认
    在这里插入图片描述

    创建成功图示
    在这里插入图片描述

    方式2:命令行

    — 创建school数据库,指定字符集和排序规则
    CREATE DATABASE school CHARACTER SET utf8 COLLATE utf8_general_ci;

    – /#:SQL注释符,后续内容不执行;
    CHARACTER SET:指定字符集;COLLATE:指定排序规则。

    创建图示:
    在这里插入图片描述

    3.2 创建users学生表(存储账号密码)

    在这里插入图片描述

    方式1: Navicat可视化

    1.双击school数据库>右键「表」>「新建表」;
    2.添加字段(数据表的列):
    id:整数类型,勾选「主键」(唯一标识,如学号,避免重复);
    name: varchar(50), 勾选 「NOT NULL」(姓名不能为空);
    id_card VARCHAR(18),勾选NOT NULL,–身份证号,非空(18位固定长度)
    phone VARCHAR(1),勾选NOT NULL,–手机号,非空(11位固定长度)
    address TEXT,–地址,长度不固定
    password:varchar(50),勾选 NOT NULL」(密码不能为空)
    3.保存表,命名为users。
    在这里插入图片描述
    创建成功图示:
    在这里插入图片描述

    方式2: 命令行

    创建命令:
    在这里插入图片描述

    四、SQL核心操作:CRUD(增删改查)

    SQL(结构化查询语言)是与数据库沟通的"专属话术",也是SQL注入攻击的核心工具,掌握基础语法是理解漏洞的前提。
    在这里插入图片描述

    4.1C(Create):新增数据(INSERTINTO)

    方式1: Navicat可视化

    在这里插入图片描述

    方式2: 命令行

    批量新增1条学⽣数据
    在这里插入图片描述
    ● INSERTINTO表名(字段1,字段2):指定新增数据的表和字段;(字段可省略)
    ● VALUES(值1,值2),(值3,值4):批量填数据,顺序与字段对应。

    批量的添加数据:
    批量的添加数据

    4.2 U (Update):修改数据(UPDATE)

    — 修改haga(id=4)的密码为999999
    UPDATE `school`.`users` SET `password` = '999999' WHERE `id` = 4;

    ●SET字段=新值:指定要修改的字段和内容;
    ● 致命错误:漏写WHERE ‘id’ =4会修改表中所有学⽣的密码。

    4.3D(Delete):删除数据(DELETE)

    — 删除haga(id=4)的信息
    DELETE FROM `school`.`users` WHERE `id` = 4;

    ● 致命错误:漏写WHERE会清空整个表的数据,且难以恢复。

    4.4R(Read):查询数据(SELECT,攻击者偷数据核心)

    (1)查询所有数据

    — 查询users表中的所有学生数据
    SELECT * fROM users;

    ● *:代表所有字段,可查看学号、姓名、密码等全部信息。

    (2)按条件查询

    — 只查询学号为1的学生姓名和密码
    SELECT name,password FROM users WHERE id = 1;

    ● name,password: 指定只查询的字段
    ● WHERE id=1:指定查询条件

    (3)多条件查询

    ● AND (并且) : 多个条件必须同时满足

    — 查学号为2且姓名为haga的学生密码
    select name,password from users where id=2 AND name='haga';

    运行结果:
    在这里插入图片描述

    ● OR(或者) : 满足任一条件(为真条件)即可

    — 查学号为2或3 的学生信息
    select * from users where id=2 OR id=3;

    查询结果:

    在这里插入图片描述

    (4)模糊查询(LIKE+%)

    — 查姓h的学生(%代表任意字符)(_代表任意单一字符)
    select * from users where name like 'h%';

    (5)排序查询(ORDER BY)

    — 按学号升序(asc)查询学生id ASC 可不写,为默认
    SELECT * FROM users ORDER BY id ASC;
    — 按学号降序(desc)查询学生姓名
    SELECT * FROM users ORDER BY name DESC;

    (6)联合查询(UNION,SQL注入核心)

    将多个SELECT结果合并,前提: 字段数、字段类型一致。

    — 联合查询: 查users表的姓名/密码 + classes表的班级编号/名称
    SELECT password,name FROM users
    UNION
    SELECT id,name from users;

    ● UNION: 合并结果并去重; UNION ALL:保留重复数据;
    ● 实战价值: 攻击者可窃取不同表的关联数。

    运行实例:
    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 网安必备基础 带你了解数据库基础安全(上)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址