Spring Boot + Mybatis Plus3.1 + 攻击SQL阻断解析器 使用示例
介绍
1、此类的作用是解析 delete update 语句,防止小白或者
恶意进行delete update 全表操作。
项目目录
红线划掉没有用到
config 包
@Configuration
@MapperScan("com.example.demo.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
List<ISqlParser> sqlParserList = new ArrayList<>();
// 攻击 SQL 阻断解析器、加入解析链
sqlParserList.add(new BlockAttackSqlParser());
paginationInterceptor.setSqlParserList(sqlParserList);
return paginationInterceptor;
}
}
entity 包
@Data
@TableName(value = "student")
public class Student {
private Long id;
private String name;
private Integer age;
}
mapper 包
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
启动包
@SpringBootApplication
@MapperScan(value="com.example.demo.mapper")
public class MybatisPlusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusDemoApplication.class, args);
}
}
测试类
@Test
public void testDeleteAll() {
userMapper.delete(null); // 全表删除
}
测试结果
禁止全表删除