MySQL SQL 注入防范——参数化查询与防护
一、什么是 SQL 注入
-- 用户输入: ' OR '1'='1SELECT*FROMuserWHEREname=''OR'1'='1'-- 返回所有用户!密码校验形同虚设二、MyBatis 的防范
<!-- ❌ 错误:字符串拼接,容易注入 --><selectid="getUser">SELECT * FROM user WHERE name = '${name}'</select><!-- ✅ 正确:参数化查询 --><selectid="getUser">SELECT * FROM user WHERE name = #{name}</select>三、其他防护
// 输入校验if(!name.matches("[a-zA-Z0-9_]{3,20}")){thrownewBusinessException("非法输入");}// 开启防火墙(Druid)spring.datasource.druid.filters:stat,wall💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!