Mabatis中模糊查询防止sql注入

#{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全;
${xxx},使用字符串拼接,可以SQL注入;
like查询不小心会有漏洞,正确写法如下:
Mysql:  
select * from user where name like concat('%', #{name}, '%')   

Oracle: 

select * from user where name like '%' || #{name} || '%' 

SQLServer: 

select * from user where name like '%' + #{name} + '%'  

 

posted on 2017-08-16 09:42  notonlywei  阅读(1212)  评论(0编辑  收藏  举报

导航