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

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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Druid连接池是一个开源的、高效的数据库连接池,适用于Java应用程序。它能够提供连接池和管理连接的功能,帮助进行数据库连接的管理和优化。 Druid连接池配置主要包括以下几个方面: 1. 数据源配置:可以通过配置文件或代码来设置数据库相关的属性,如驱动类型、URL、用户名、密码等。这些配置项可以根据具体的数据库类型和环境需求来设置。 2. 连接池参数配置:可以设置连接池的一些基本参数,如初始化连接数、最小连接数、最大连接数等。这些参数会直接影响连接池的性能和资源占用情况,需要根据具体应用的需求进行调整。 3. 连接属性配置:可以设置每个连接的一些属性,如连接超时时间、最大等待时间、是否自动提交等。这些属性可以根据具体需求进行设置,以满足应用程序的要求。 4. 监控配置:可以设置连接池的监控功能,包括连接池的活跃连接数、空闲连接数、执行SQL次数、慢查询次数等。这些监控数据可以通过配置项输出到日志文件或通过JMX暴露出来,以便进行监控和调优。 5. 连接池扩展配置:可以通过配置项来设置连接池的一些扩展功能,如连接池的预处理、过滤器等。这些功能可以提供更灵活的连接管理方式,以满足特定需求。 通过合理配置Druid连接池,可以提高应用程序对数据库连接的管理和利用效率,减少连接泄露和性能问题。但是需要注意的是,配置应遵循最佳实践,并根据实际情况进行调整和优化,以达到最佳的数据库连接池配置效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值