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

时间:2015-08-13 14:23:53   收藏:0   阅读:1076

最近在使用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} + ‘%’

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

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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!