news 2026/5/13 10:03:23

网络安全学习基础(四)-数据库基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络安全学习基础(四)-数据库基础

学习目标

1了解什么是数据库

2了解什么是数据库操作系统

3了解数据库的crud

4了解基本的数据库攻击手段-sql注入

数据库 是长期存储在计算机内,有组织,可共享的数据集合

dbms(数据库管理系统)就是数据库的专属软件管家,专门帮忙管理数据库里的数据

分为mysql oracle sqlserver三种数据库,通过sql结构化查询还存取,管理关系型数据库的数据

数据库的层次结构每一行叫做一个记录 每一列叫做一个字段列

创建数据库操作

可以看到我的sql语句已经成功运行这句增加数据库的语句的意思为

CREATE DATABASE abc 创建一个数据库名字为abc

CHARACTER SET utf8 将字符串类型设置为utf8类型

在这里引出一个新点什么是utf8类型?

所谓的utf8是字符串格式的一种常见的字符串类型属于万能可用于存储,汉字,字母,符号,在电脑中怎么使用二进制来存储

utf8兼容英文,中文,特殊符号通用性强

而另一种常见的gbk编码只适合国内软件,占用空间小

COLLATE(排库规则) utf8_general_ci

这句数据库的语句意思是用utf8_general_ci(case insensitive)

这个规则的意思是不区分大小写 字母大写小写等同

在数据库abc下创建表users

CREATE TABLE users ( id INT PRIMARY KEY, -- 学号(主键,唯一不重复)

name VARCHAR(50) NOT NULL, -- 学生姓名(NOT NULL: 必须填写,不能留空)

id_card VARCHAR(18) NOT NULL, -- 身份证号,非空(18位固定长度)

phone VARCHAR(11) NOT NULL, -- 手机号,非空(11位固定长度)

address TEXT, -- 地址,长度不固定

password VARCHAR(50) NOT NULL -- 校园网密码(NOT NULL: 必须填写,不能留空

可以很明白

SQL-结构化查询语言

1.数据定义语言(DDL):用于创建和修改数据库对象(如表和索引)的结构,如CREATE、ALTER、DROP等语句。

2.数据操纵语言(DML):用于对数据库中的数据进行新增、修改、删除等操作,如INSERT、UPDATE、DELETE等语句。

3.数据查询语言(DQL):用于对数据进行查询操作,如SELECT语句。

4.数据控制语言(DCL):用于控制用户对数据的访问权限,如GRANT和REVOKE语句

-- 插入数据 INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);

INSERT INTO users (id, name, id_card, phone, address, password) VALUES (1, '吕洪吉', '210105199901011234', '13800138000', '辽宁省沈阳市和平区', '123456');

-- 修改数据 UPDATE 表名 SET 字段1=新值1, 字段2=新值2, ... [WHERE 条件];

-- 删除数据 DELETE FROM 表名 [WHERE 条件];

后续仅需要一步一步执行即可很简单

-- 查询表中所有数据(*代表所有字段) SELECT * FROM users;

-- 查询指定字段(只查姓名和密码) SELECT name, password FROM users;

-- 单条件查询:查询id=1的用户信息 SELECT * FROM users WHERE id=1;

-- 多条件AND:同时满足id=1 AND name=';老李'的用户 SELECT name, password FROM users WHERE id=1 AND name='老李';

-- 多条件OR:满足id=1 或 id=2的用户 SELECT * FROM users WHERE id=1 OR id=2;

-- 查询名字以“吕”开头的用户(%匹配0个或多个字符) SELECT * FROM users WHERE name LIKE '吕%';

-- 查询名字第二个字是“洪”的用户(_匹配1个字符) SELECT * FROM users WHERE name LIKE '_洪%';

-- 按id升序排序(ASC默认可以省略) SELECT * FROM users ORDER BY id ASC;

-- 按id降序排序(DESC必须写) SELECT * FROM users ORDER BY id DESC;

-- 写法1:只取前2条数据 SELECT * FROM users LIMIT 2;

-- 写法2:分页查询,从第1条(偏移量0)开始,取2条数据 SELECT * FROM users LIMIT 0, 2;

-- 分页示例:第2页,每页2条(偏移量=页码-1 * 每页条数) SELECT * FROM users LIMIT 2, 2;

感兴趣可以敲一下但是我觉得没有必要很简单的东西

sql注入漏洞:所谓的sql注入漏洞就是攻击者通过构造精美的sql语句从而改变后端数据库的结构从而对数据库进行未授权的非法访问漏洞

其根本是:缺乏过滤的直接拼接代码直接将用户输入的$name和$pwd拼接到sql语句中,且未进行任何过滤。这导致攻击者可以输入恶意sql语句指令,从而篡改查询逻辑绕过验证和窃取数据。

万能密码'or'1'='1

-- 正常账号密码登录逻辑 SELECT * FROM users WHERE name='$name' AND password='$pwd';

我们现在在两个输入栏中输入万能密码'or'1'='1就变成了

SELECT * FROM users WHERE name='' OR '1'='1' AND password='' OR '1'='1';

and在逻辑表达式本质中是逻辑与操作||只有将双方的条件全为真时才通过检验

or则是只要有一个为真则就可以通过校验现在我们来对这句sql语句进行拆分

第一步先进行and操作1=1andpassword=''明显不对

第二步剩下的所有or进行合并name=''or假or'1'='1'我们从左往右一步步计算假与真进行或操作为真最终这个逻辑表达式的语句为真则可以进入到数据库查询

逻辑成立实操开始

登陆成功

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 9:59:23

每天多出30分钟:让taojinbi自动完成淘宝淘金币和农场任务

每天多出30分钟:让taojinbi自动完成淘宝淘金币和农场任务 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 还…

作者头像 李华
网站建设 2026/5/13 9:58:27

MySql索引(二)

文章来源:s默心的编程开发笔记​​​​​​​ B树 B 树又叫平衡多路查找树,如果每个节点最多有 m个孩子,那么这样的树就是 m阶 B 树。 上图是一个3阶 B 树的,当然现实中,索引每个节点的孩子数上限,肯定是远…

作者头像 李华
网站建设 2026/5/13 9:56:27

InfluxDB(五)——分片、压缩与降采样三大核心技术

目录 一、先搞懂:分片、压缩、降采样是什么? 1. 分片(Shard)—— 把大文件切成小块 1.1 为什么要分片? 1.2 分片是什么? 1.3 分片的能力与不足 2. 压缩 —— 数据库默默帮你节省空间 2.1 压缩解决了…

作者头像 李华
网站建设 2026/5/13 9:54:28

CRM 系统是什么?一文读懂客户关系管理系统的核心价值与应用

在数字化转型加速的今天,CRM 系统已成为企业管理客户关系、提升销售业绩的核心工具。据 IDC 最新数据显示,2026 年中国 CRM 系统市场规模将突破 380 亿元,同比增长 30%,超过 85% 的企业将 CRM 系统列为数字化转型的优先事项。一套…

作者头像 李华
网站建设 2026/5/13 9:50:48

Nginx 高级配置:负载均衡、限流、缓存、SSL

Nginx 高级配置:负载均衡、限流、缓存、SSL | 负载均衡、限流、缓存、SSL 优化。负载均衡 基础配置 upstream backend {server 192.168.1.10:8080;server 192.168.1.11:8080;server 192.168.1.12:8080; }server {listen 80;server_name example.com;location / {pro…

作者头像 李华