Mybatis-Plus ajoute un plug-in pour interdire les opérations de mise à jour complète de table et de suppression complète de table

Mybatis-Plus ajoute un plug-in pour interdire les opérations de mise à jour complète de table et de suppression complète de table
commencer :

Dans le développement réel du projet, les données de l'ensemble du tableau peuvent être modifiées ou supprimées en raison d'une négligence ou d'une intention malveillante. L'impact de cela sur le projet/produit ne peut être ignoré.


accomplir :

MyBatis Plus fournit le plug-in BlockAttackInnerInterceptor (analyseur Sql d'attaque de bloc), qui peut empêcher les opérations de mise à jour et de suppression complètes de la table. Dans une certaine mesure, la sécurité des données de la base de données est garantie. Voici un exemple d'utilisation du plugin :

@Configuration
public class MybatisPlusConfigure {
    
    

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

ou

@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;
    }
}

test

Testez l'instruction de mise à jour de toute la table sans WHERE et
lancez les informations d'exception suivantes :

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

Je suppose que tu aimes

Origine blog.csdn.net/AKALXH/article/details/130770588
conseillé
Classement