Mybatis-Plus は、テーブル全体の更新およびテーブル全体の削除操作を禁止するプラグインを追加します

Mybatis-Plus は、テーブル全体の更新およびテーブル全体の削除操作を禁止するプラグインを追加します
始める :

実際のプロジェクト開発では、過失や悪意によりテーブル全体のデータが変更されたり、削除されたりする可能性があります。これがプロジェクト/製品に与える影響は無視できません。


成し遂げる :

MyBatis Plus は、テーブル全体の更新および削除操作を防止できるBlock AttackInnerInterceptor (ブロック攻撃 SQL パーサー) プラグインを提供します。データベース データのセキュリティはある程度保証されます。プラグインの使用方法の例を次に示します。

@Configuration
public class MybatisPlusConfigure {
    
    

    @Bean
    public MybatisPlusInterceptor paginationInterceptor() {
    
    
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 防止全表更新与删除 ,主要影响的是 update 和 delete 语句.不论是xml方式还是编码方式都会拦截
        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
        return interceptor;
    }
}

または

@Configuration
public class MybatisPlusConfigure {
    
    

    /**
     * 注册分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
    
    
    	// 分页拦截器添加 BlockAttackSqlParser()
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        List<ISqlParser> sqlParserList = new ArrayList<>();
        // 添加阻断攻击Sql解析器: 阻止全表更新和删除操作
        sqlParserList.add(new BlockAttackSqlParser());
        paginationInterceptor.setSqlParserList(sqlParserList);
        paginationInterceptor.setLimit(-1);
        return paginationInterceptor;
    }
}

テスト

WHEREを使用せずにテーブル全体の更新ステートメントをテストし
次の例外情報をスローします。

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Prohibition of table update operation
### Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Prohibition of table update operation

おすすめ

転載: blog.csdn.net/AKALXH/article/details/130770588
おすすめ