前景提要
HDC调试需求开发(15万预算),能者速来!>>>
@wenshao 你好,想跟你请教个问题:我Java jdbc代码执行删除存储过程sql语句,但是报了错误
java.sql.SQLException: sql injection violation, class com.alibaba.druid.sql.ast.statement.SQLDropProcedureStatement not allow : DROP PROCEDURE IF EXISTS CP_PayCalc1
at com.alibaba.druid.wall.WallFilter.check(WallFilter.java:714)
at com.alibaba.druid.wall.WallFilter.connection_prepareStatement(WallFilter.java:240)
at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:448)
at com.alibaba.druid.filter.FilterAdapter.connection_prepareStatement(FilterAdapter.java:928)
at com.alibaba.druid.filter.FilterEventAdapter.connection_prepareStatement(FilterEventAdapter.java:122)
at com.alibaba.druid.filter.FilterChainImpl.connection_prepareStatement(FilterChainImpl.java:448)
at com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl.prepareStatement(ConnectionProxyImpl.java:342)
at com.alibaba.druid.pool.DruidPooledConnection.prepareStatement(DruidPooledConnection.java:323)
at com.mchr.db.Database.execute(Database.java:222)
at com.mchr.db.Database.execute(Database.java:210)
at com.mchr.custom.controller.PayFormulaController.main(PayFormulaController.java:107)
Exception in thread "main" com.mchr.exception.SqlException: SQL:1 param:[] sql: DROP PROCEDURE IF EXISTS CP_PayCalc1 sql injection violation, class com.alibaba.druid.sql.ast.statement.SQLDropProcedureStatement not allow : DROP PROCEDURE IF EXISTS CP_PayCalc1
at com.mchr.db.Database.getSqlException(Database.java:916)
at com.mchr.db.Database.execute(Database.java:229)
at com.mchr.db.Database.execute(Database.java:210)
at com.mchr.custom.controller.PayFormulaController.main(PayFormulaController.java:107)
最后,我把filter中的wall去掉好了,但是这样就不能进行预防sql注入了,请问有没有更好的解决办法?