druid sql黑名单 报异常 sql injection violation, part alway true condition not allow
最近使用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相关推荐
- druid报异常 “sql injection violation, part alway true condition not allow”的解决方案
使用durid连接池组件,执行sql时发现异常如下: Caused by: java.sql.SQLException: sql injection violation, part alway tru ...
- 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 ...
- 综合技术--sql injection violation, part alway true condition not allow
2019独角兽企业重金招聘Python工程师标准>>> 今天遇到一个很奇怪的报错,信息如下 sql injection violation, part alway true cond ...
- 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' ...
- Druid sql injection violation, part alway false condition not allow
在使用druid的时候很简单的一条sql报了错,如下 select<include refid="Base_Column_List"/>from sys_user_id ...
- sql injection violation, part alway false condition not allow
今天做需求碰到了这个问题,sql injection violation, part alway false condition not allow,有的说改druid配置文件,将filters中的w ...
- MySql java.sql.SQLException: sql injection violation, part alway false condition not allow异常简单处理方式
在sql语法正常下 进行拼接sql语句时出现类似"1=1"等代码前面出现 and 或 or 时会被认为是sql注入 解决方案 一. 使用表名点字段名 members.name 二. ...
- java.sql.SQLException: sql injection violation, part alway false condition not allow
错误截图: 百度解释是防止sql注入,百度有的说是去掉druid里面filters里面的wall可以解决问题.但本人觉得这个方案有点难以接受.经测试发现如下原因会触发该bug: 截图sql: 在我的代 ...
- part alway false condition not allow mybatis报错解决
sql injection violation, part alway false condition not allow mybatis,代码写的是and 1!=1,报错,sql injection ...
最新文章
- “卖我一枝笔”:如何史蒂夫·乔布斯将这一经典问题作出回应?
- android 从零单排 第一期 按键显示helloworld
- 什么是“小小输入法”软件? 用其进行郑码输入练习
- oracle rowID切片,Oracle中的rowid
- mpi由于目标计算机积极拒绝,windows系统lammps安装MPICH2的问题
- Qt笔记-对connect中第5个进行多组实验(对信号与槽进一步认识)
- openSUSE 11.2 安装QT(二) QtCreator
- python打开浏览器全屏_python 设置网页全屏显示
- How to check number of Active connections in SQL server?
- sql 结果相加_SQL联结语句
- iOS——常用的手势总结
- PaddlePaddle入门实践——手写数字识别
- 立创开源 | 基于555定时器的电子琴设计
- 小米-测试工程师面试20190418
- 视频广告场景识别方案总结
- 【转载】 S/4 HANA中的MATDOC和MATDOC_EXTRACT
- 2013年第四届丘成桐大学生数学竞赛获奖名单
- 三元表达式(三目运算)
- 2018年以后正确的网站外链建设方法
- 人工智能时代的幼儿教育软件