feat: 启用 MyBatis-Plus BlockAttackInnerInterceptor 防全表更新/删除

拦截无 WHERE 条件的 UPDATE / DELETE 语句,避免因业务 bug 或
SQL 注入导致整表数据被误清空。

由于 mybatis-plus 3.5.9 起将 jsqlparser 相关能力从 core 包
拆出到独立的 mybatis-plus-jsqlparser 模块,BlockAttackInnerInterceptor
依赖 SQL 解析,需要显式引入该依赖。

改动:
- pom.xml (根):dependencyManagement 加入 mybatis-plus-jsqlparser
- opsli-base-support/opsli-core/pom.xml:引入 mybatis-plus-jsqlparser
- MyBatisPlusConfig.java:import BlockAttackInnerInterceptor,
  取消原有注释并启用拦截器
pull/45/head
cp1996 1 month ago
parent 9249a8f884
commit bcd55a6144

@ -111,6 +111,12 @@
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
</dependency>
<!-- mybatis-plus SQL 解析模块3.5.9 起拆出BlockAttackInnerInterceptor 必需 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>

@ -16,6 +16,7 @@
package org.opsli.core.autoconfigure.conf;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
@ -49,8 +50,9 @@ public class MyBatisPlusConfig {
// 乐观锁
mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
// 防止全表更新与删除插件
//mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
// 防止全表更新与删除插件 - 安全加固
// 拦截无 WHERE 条件的 UPDATE/DELETE避免因业务 bug 或 SQL 注入导致整表数据被清空
mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
return mybatisPlusInterceptor;
}

@ -148,6 +148,13 @@
<version>${mybatis-plus.version}</version>
</dependency>
<!-- mybatis-plus SQL 解析模块3.5.9 起拆出BlockAttackInnerInterceptor 必需 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>

Loading…
Cancel
Save