场景
Druid 为避免 sql 注入当拼接的 sql 语句多于一处 1=1 时,项目报错:
java.sql.SQLException: sql injection violation, double const condition :
思路
查了druid配置项后,发现一处可配置
conditionDoubleConstAllow:false // 改为 true
难点是目前的项目底层封装到了jar包里面,我无法修改源码,也不能单纯的重写一个方法来加入这个规则。
目前的思路是:
找到获取 plugin 的方法
在项目启动后修改 plugin
但是经过尝试我不知道怎么才能拿到plugins,还有取出里面的 Druidplugin 是否有方法支持?
项目:JFinal
1, 在 /WEB-INF/web.xml 里面有 一个继承自JFinalConfig类的子类,该类用于对整个web项目进行配置。
例如手册: 2.1 概述
2,找到public void configPlugin(Plugins me) 方法:
2.5 configPlugin(..)
参数列表Plugins me 就是它了。
当然 new Druidplugin (...) 一般也在这里写的, 所以直接用就好。
问题二,Druidplugin 是否有方法支持:
源码中有这个方法:防SQL注入:"wall"
但是我没有试过, 你可以自己试试。
还有一个大招: