1. 数据库与表创建
sql
-- 创建数据库
CREATE DATABASE school CHARSET utf8;
-- 创建用户表
CREATE TABLE users(
id INT PRIMARY KEY,
name VARCHAR(50),
password VARCHAR(50)
);
2. 常用 SQL 语句
- 增:
INSERT INTO users VALUES(1,'张三','123456'); - 查:
SELECT * FROM users WHERE name='张三'; - 改:
UPDATE users SET password='654321' WHERE id=1; - 删:
DELETE FROM users WHERE id=1;
二、网站与数据库交互流程
- 连接数据库
- 获取用户输入(账号、密码)
- 拼接 SQL 语句执行
- 返回结果给用户
三、SQL 注入漏洞原理
核心原因:用户输入直接拼接到 SQL 语句中,未做过滤,导致恶意代码被执行。
经典万能密码案例
正常 SQL:SELECT * FROM users WHERE name='' AND password='';
恶意输入:用户名填 ' or '1'='1拼接后 SQL:SELECT * FROM users WHERE name='' or '1'='1' AND password='';
效果:条件恒成立,直接绕过登录。
四、总结
SQL 注入是最基础的 Web 漏洞,本质是用户输入被当作代码执行。防护关键:过滤用户输入,不直接拼接 SQL 语句。