druid sql injection violation

时间:2024-11-04 17:17:44

1、如果你发现这个异常org.spring酆璁冻嘌framework.jdbc.UncategorizedSQLException:### Error querying database. Cause: java.sql.SQLException: sql injection violation并且 你的sql 在plsql执行没问题,就要考虑是不是druid防火墙把你sql拦截了,如果你配置了防火墙,可以关闭试试。将<property name="filters" value="stat,wall,log4j2"/> 中wall 去掉

druid sql injection violation

2、如果你还配置了监控防火墙,这两个配置会合作一起起作用,所以你还要把这里防火墙做一下处理

druid sql injection violation

3、第一种方法:<property name="throwException" value="true"/> 这个配置是将有攻击的sql 或者无法解析的sql 抛出sql异常, 如果你配置这个,可以将true该成false 这时将不抛异常,不影响sql执行,而是错误作为错误日志输出

druid sql injection violation

4、第二种方法:如果你的异常跟我一样,那应该就是druid解析sql失败,目前druid 还没有覆盖到所有的sql语法的解析,所以会有解析不出来的情况,剧安颌儿如果是这种情况,你可以将druid的严格语法校验关闭<property name="strictSyntaxCheck" value="false"/>,这样druid就不校验语法了。

druid sql injection violation

5、这是这个属性的具体解释

druid sql injection violation

6、刚开始引入WallFilter的时候,把logViolation设置为true,而throwException设置为false。就可以观察是否存在违规的情况,同时不影响业务运行。

druid sql injection violation

7、以上都是暂时屏蔽错误语法和有风险的语法的校验,并不建议上线使用,建议还是修正sql 写法,如果真的觉得没有问题,可以联系druid的开发人员,将Sql发给他们

© 手抄报圈