最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助,

但是最近发现里面 有条sql语句 被拦截了,在sql黑名单里,程序抛出异常

sql injection violation, part alway true condition not allow

sql 语句大概如下 HIbernate 组合出来的sql

SELECT this_.id AS id34_0_, this_.accountno AS accountno34_0_, this_.amount AS amount34_0_, this_.bankcard AS bankcard34_0_, this_.bankname AS bankname34_0_FROM lhu.bankinfo this_ WHERE this_.type=? AND this_.isshow=? AND this_.useable=? AND this_.bankname=? AND this_.userrole LIKE ? AND 1=1 ORDER BY RAND()

百度查了一下,大概解决方法就是在配置文件中

将属性<property name="filters" value="config,stat,wall,log4j" />改成<property name="filters" value="config,stat,log4j" />

去掉 wall, 官方解析(监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall) , 这样问题确实解决,放druid不去过滤扫描这些语句。

那之前那个sql语句涉及sql注入问题,又对sql注入进一步了解了一下:

最后发现, ORDER BY RAND(),这句有很大的问题, ORDER BY RAND() 随机抽取的意思, 数据在执行会多次扫描表数据,这在数据量小的时候是可以做到随机抽取,

从来满足业务需要,但是数据量大的时候,反而会影响查询的效率,而且查询时间也比较长,sql语句中rand() 做随机数,也被列为禁区,

可能也是这个原因,druid认为这个语句是一个不安全的语句,从而过滤掉,类似的语句还有想sys_guid() 等都会去扫描整个表数据, 也会被拦截,

后续再出现sql被拦截再更新上来

个人观点,

转载于:https://www.cnblogs.com/catalina-/p/druid.html

druid sql黑名单 报异常 sql injection violation, part alway true condition not allow相关推荐

  1. druid报异常 “sql injection violation, part alway true condition not allow”的解决方案

    使用durid连接池组件,执行sql时发现异常如下: Caused by: java.sql.SQLException: sql injection violation, part alway tru ...

  2. MySQL异常 #SQLException: sql injection violation, part alway true condition not allow

    1.异常现象 Caused by: java.sql.SQLException: sql injection violation, part alway true condition not allo ...

  3. 综合技术--sql injection violation, part alway true condition not allow

    2019独角兽企业重金招聘Python工程师标准>>> 今天遇到一个很奇怪的报错,信息如下 sql injection violation, part alway true cond ...

  4. java.sql.SQLException: sql injection violation, part alway true condition not allow

    这是我在思考调试sql注入出现的小bug 打印出来的SQL语句放在数据库执行 select id,name,age,phone from yu_student where phone = '123' ...

  5. Druid sql injection violation, part alway false condition not allow

    在使用druid的时候很简单的一条sql报了错,如下 select<include refid="Base_Column_List"/>from sys_user_id ...

  6. sql injection violation, part alway false condition not allow

    今天做需求碰到了这个问题,sql injection violation, part alway false condition not allow,有的说改druid配置文件,将filters中的w ...

  7. MySql java.sql.SQLException: sql injection violation, part alway false condition not allow异常简单处理方式

    在sql语法正常下 进行拼接sql语句时出现类似"1=1"等代码前面出现 and 或 or 时会被认为是sql注入 解决方案 一. 使用表名点字段名 members.name 二. ...

  8. java.sql.SQLException: sql injection violation, part alway false condition not allow

    错误截图: 百度解释是防止sql注入,百度有的说是去掉druid里面filters里面的wall可以解决问题.但本人觉得这个方案有点难以接受.经测试发现如下原因会触发该bug: 截图sql: 在我的代 ...

  9. part alway false condition not allow mybatis报错解决

    sql injection violation, part alway false condition not allow mybatis,代码写的是and 1!=1,报错,sql injection ...

最新文章

  1. “卖我一枝笔”:如何史蒂夫·乔布斯将这一经典问题作出回应?
  2. android 从零单排 第一期 按键显示helloworld
  3. 什么是“小小输入法”软件? 用其进行郑码输入练习
  4. oracle rowID切片,Oracle中的rowid
  5. mpi由于目标计算机积极拒绝,windows系统lammps安装MPICH2的问题
  6. Qt笔记-对connect中第5个进行多组实验(对信号与槽进一步认识)
  7. openSUSE 11.2 安装QT(二) QtCreator
  8. python打开浏览器全屏_python 设置网页全屏显示
  9. How to check number of Active connections in SQL server?
  10. sql 结果相加_SQL联结语句
  11. iOS——常用的手势总结
  12. PaddlePaddle入门实践——手写数字识别
  13. 立创开源 | 基于555定时器的电子琴设计
  14. 小米-测试工程师面试20190418
  15. 视频广告场景识别方案总结
  16. 【转载】 S/4 HANA中的MATDOC和MATDOC_EXTRACT
  17. 2013年第四届丘成桐大学生数学竞赛获奖名单
  18. 三元表达式(三目运算)
  19. 2018年以后正确的网站外链建设方法
  20. 人工智能时代的幼儿教育软件

热门文章

  1. 自定义ProgressBar(自定义View和ClipDrawable)
  2. AngularJS第二课(指令,作用域,控制器)
  3. 一张图看懂混合云数据同步一站式解决方案
  4. CFA考试一二三级经验,我写的很仔细......
  5. 自定义 Layer 属性的动画
  6. 新工作总结之权限系统设计
  7. vue全家桶 ---axios的使用和二次封装
  8. php 自动发送邮件的实现
  9. Python list排序
  10. 转:Oracle中的日期和字符串互相转换