注入到底是什么要点
- 本质:用户输入被当成了 SQL 代码的一部分去解析
- 高发场景:登录、搜索、任何拼接用户输入的查询
- 危险写法:把变量直接拼进字符串再执行
- 后果:绕过鉴权、拖库、删表、甚至拿到服务器权限
- 防线核心:让数据与指令永远分开,不混写
- 永远假设用户输入是恶意的,先过滤再使用
注入到底是什么示例
-- 危险写法:把用户输入直接拼进 SQL(演示,切勿在生产使用)
SET @name = '蜻蜓';
SET @sql = CONCAT('SELECT * FROM insect WHERE name = ''', @name, '''');
PREPARE stmt FROM @sql;
EXECUTE stmt;
避坑提醒:拼接字符串是把数据当代码的典型错误;哪怕只拼一个值,也要走参数化,别指望'我这个输入框没人会乱填'。