Spring Boot + Mybatis Plus3.1 + 攻击SQL阻断解析器 使用示例

Sql注入器

介绍

	1、此类的作用是解析 delete update 语句,防止小白或者
	恶意进行delete update 全表操作。

项目目录

红线划掉没有用到
Spring Boot + Mybatis Plus3.1 + 攻击SQL阻断解析器 使用示例

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);  // 全表删除
	}

测试结果

禁止全表删除
Spring Boot + Mybatis Plus3.1 + 攻击SQL阻断解析器 使用示例