兼职游戏网站怎么做/武汉seo搜索引擎
在我进行数据库foreach批量更新时,报错 sql injection violation, multi-statement not allow,重复执行sql语句导致sql注入异常。在网上找了不少案例都没有成功,最后发现了下面这个解决办法,亲测有效,记录一下。
解决办法(分两步)
第一步
&allowMultiQueries=true
还是需要加到URL后面的,必须的
第二步:编写druidconfig.java配置
@Configuration
public class DruidConfig {@ConfigurationProperties(prefix = "spring.datasource")@Beanpublic DataSource druid(){List filterList=new ArrayList<>(); //可以链式叠加filterList.add(wallFilter());DruidDataSource druidDataSource = new DruidDataSource();druidDataSource.setProxyFilters(filterList);return druidDataSource;//return new DruidDataSource(); 不需要执行多条语句的话,只需要这一个return即可,下面的WallFilter 和WallConfig 都不用,当然监控servlet要的}/*** 配置druid执行多条sql(批量执行),避免报sql注入异常* 链式配置,从下往上注入* @return*/@Beanpublic WallFilter wallFilter() {WallFilter wallFilter = new WallFilter();wallFilter.setConfig(wallConfig());return wallFilter;}@Beanpublic WallConfig wallConfig() {WallConfig wallconfig = new WallConfig();//允许一次执行多条语句wallconfig .setMultiStatementAllow(true);//允许非基本语句的其他语句wallconfig .setNoneBaseStatementAllow(true);return wallconfig ;}
}
来源:https://blog.csdn.net/weixin_43657383/article/details/105524618