码迷,mamicode.com
首页 > 数据库 > 详细

使用druid连接池,配置sql防火墙发现的sql注入问题

时间:2015-08-13 14:24:17      阅读:952      评论:0      收藏:0      [点我收藏+]

标签:druid   mysql   sqlz   myba   

最近在使用druid连接池,同时也配置了web和spring的关联监控,检测到select * from tables param like #{param1} “%”的语句被拦截了。做个笔记。

解决方法有两种:
一、 select * from tables param like concat(${param1},”%”)。
二、传入 参数的时候动态拼接 param1=param1+”%”;
select * from tables param like #{param1}。

Mybatis3 防止SQL注入

{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全;

${xxx},使用字符串拼接,可以SQL注入;

like查询不小心会有漏动,正确写法如下:
Mysql: select * from tables where param like concat(‘%’, #{param1}, ‘%’)
Oracle: select * from t_user where param like ‘%’ || #{param1} || ‘%’
SQLServer: select * from t_user where param like ‘%’ + #{param1} + ‘%’

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用druid连接池,配置sql防火墙发现的sql注入问题

标签:druid   mysql   sqlz   myba   

原文地址:http://blog.csdn.net/sc313121000/article/details/47611383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!