参数化查询是根本

防范注入的王道是预处理语句(Prepared Statement)。它先发'带占位符的语句模板',再单独把数据传进去,数据库绝不会把数据当代码执行。

参数化查询是根本要点

参数化查询是根本示例

						-- 用预处理语句,占位符与数据分离,注入无效
						PREPARE stmt FROM
						  'SELECT * FROM users WHERE username = ? AND password = ?';
						SET @u = 'alice', @p = 'secret';
						EXECUTE stmt USING @u, @p;

						-- 就算传入 ' OR '1'='1,也只会被当作普通字符串
						SET @u = ''' OR ''1''=''1';
						EXECUTE stmt USING @u, @p;
避坑提醒:参数化查询是防注入的根本手段,转义只是兜底;新项目直接全面上预处理,别等被扫出来再补。
参数化查询是根本 · SQL 注入防护 知识卡片
卡片 06 / 07 · SQL 注入防护(1080×1440 速查卡片)

SQL 注入防护知识点