防止SQL注入 iBatis模糊查询

来源:互联网 发布:js正则数字字母下划线 编辑:程序博客网 时间:2024/05/07 09:04

ibatis模糊查询的like '%$name$%'的sql注入避免。

在用ibatis进行模糊查询的时候很多同学习惯用like'%$name$%'的方式,其实这种方式会造成sql注入。ibatis对于$符号的处理是默认不加’‘号的,所以如果传入的参数是:

1'或者是1231%'or 1%' = '1这些形式就回造成注入危险。

解决是避免用like '%$name$%',可以进行字符的拼接进行规避,比如oracle:like'%'||#name#||'%';mysql:likeconcat('%',#name#,'%');


为了防止SQL注入,iBatis模糊查询时也要避免使用$$来进行传值。下面是三个不同数据库的ibatis的模糊查询传值。

  1. mysql: select * from stu where name like concat('%',#name #,'%')  
  2.  
  3. oracle: select * from stu where name like '%'||#name #||'%' 
  4.  
  5. SQL Server:select * from stu where name like '%'+#name #+'%   

原创粉丝点击