博客摘要

本文系统整理 MySQL 数据库基础操作、PHP 与 MySQL 交互流程、SQL 注入漏洞原理、利用方式、防御方案以及information_schema系统库使用知识,涵盖数据库连接、SQL 基础查询、联合查询注入、万能密码绕过、脱库流程等核心考点,适合 Web 安全入门、SQL 注入基础复习与考试备考使用。


一、MySQL 数据库基本操作流程

MySQL 数据库完整使用流程主要分为建立连接、执行 SQL 操作、关闭连接三个阶段:

  1. 建立数据库连接可通过命令行 mysql -u root -p 原生命令连接,也可使用 Navicat 等可视化工具连接;连接时需要填写主机地址、数据库用户名、登录密码以及目标数据库名称。
  2. 执行 SQL 操作语句连接成功后执行各类 SQL 语句操作数据表,基础查询语句示例:

sql

SELECT * FROM users WHERE name='value' AND password='value';

包含 SELECT 查询、条件筛选 WHERE、AND 逻辑判断等基础语法。3. 关闭数据库连接数据操作完成后,主动释放数据库资源、断开连接,避免资源占用。

二、PHP 与 MySQL 数据库交互原理

Web 后端 PHP 程序与 MySQL 数据库交互,主要依赖 PHP 原生 MySQLi 扩展函数完成:

  1. 建立数据库连接使用mysqli_connect()函数,传入主机地址、数据库用户名、数据库密码、数据库名四个核心参数,完成 PHP 与 MySQL 的连接初始化。
  2. 执行 SQL 语句通过mysqli_query()函数执行拼接好的 SQL 语句,同时接收数据库返回的执行结果集。
  3. 结果集处理使用mysqli_num_rows()判断查询结果的记录行数;使用mysqli_fetch_array()从结果集中读取单条数据记录。

安全隐患:若后端直接将用户前端输入拼接入 SQL 语句,未做任何过滤处理,就会产生 SQL 注入漏洞。

三、SQL 注入原理、利用方式与防御措施

1. SQL 注入漏洞原理

后端程序未对用户输入做过滤、转义处理,用户可控输入直接拼接到原始 SQL 语句中执行;攻击者可构造恶意 SQL 语句片段,篡改原有查询逻辑,典型注入 Payload:name='' OR 1=1 --

2. 常见注入利用方式

  • 逻辑绕过注入:利用OR 1=1永真条件,实现万能密码登录后台绕过验证;
  • UNION 联合查询注入:利用 UNION 关键字拼接多条查询语句,获取数据库版本、库名、表名、账号密码等敏感数据;同时结合ORDER BY判断字段数、DATABASE()获取当前库、VERSION()获取数据库版本。

3. SQL 注入防御措施

对所有用户输入进行严格过滤、特殊字符转义处理,禁止用户可控参数直接拼接原始 SQL 语句;优先使用预处理语句(预编译),从根源隔离输入与 SQL 语句结构,彻底杜绝注入漏洞。

四、information_schema 系统库详解

information_schema是 MySQL 自带的系统元数据库,存储所有数据库、数据表、字段的结构信息,是 SQL 注入脱库的核心依赖库:

  1. SCHEMATA 表:存储 MySQL 中所有数据库名称,数据库名字段为schema_name
  2. TABLES 表:存储所有数据表信息,table_schema对应所属数据库、table_name对应数据表名;
  3. COLUMNS 表:存储所有数据表字段信息,包含所属库、所属表、字段名三个核心字段:table_schematable_namecolumn_name

注入脱库完整流程:查库→查表→查字段→脱取账号密码数据。

五、本章重点与学习难点

学习重点

  1. SQL 注入漏洞基础利用:掌握' OR 1=1 --万能密码登录绕过原理;
  2. information_schema 系统库使用:实现从数据库→数据表→字段名的完整信息探测;
  3. UNION 联合查询语法:牢记联合查询字段数量一致要求,用于注入获取敏感数据。

学习难点

  1. SQL 注入语句构造:正确闭合原始语句、拼接 UNION 联合查询语句;
  2. 字段数量判断:使用ORDER BY排序法判断原查询表字段总数;
  3. 注入结果定位:使用LIMIT控制返回结果行数,精准提取目标数据。

六、学习总结

MySQL 基础操作是 Web 安全入门基石,PHP 与 MySQL 交互的不安全写法是 SQL 注入漏洞产生的根源。掌握基础 SQL 语法、UNION 联合查询、information_schema 元数据库、注入原理与防御,既能完成数据库日常开发操作,也能理解 Web 安全注入漏洞的攻击逻辑与防护思路,是 Web 安全方向必备的基础知识点。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐