Mybatis 防全表更新删除
  MV69bd6votD4 2023年12月05日 21 0

转载自:www.javaman.cn

BlockAttackInnerInterceptor 是 MyBatis-Plus 的一个内置拦截器,用于防止恶意的全表更新或删除操作。当你添加了这个拦截器后,它会检查即将执行的 SQL 语句,如果有尝试进行全表更新或删除的语句,该拦截器会阻止这些操作。

那么,BlockAttackInnerInterceptor 是如何工作的呢?

  1. SQL 解析: 拦截器首先会解析即将执行的 SQL 语句,识别其类型和意图。例如,识别出是 UPDATE 还是 DELETE 语句。
  2. 全表检查: 对于 UPDATEDELETE 语句,拦截器会进一步检查它们是否针对整张表。通常,恶意的全表操作不会带有 WHERE 子句或者其 WHERE 子句条件非常宽松。
  3. 阻止操作: 如果检测到是全表更新或删除操作,拦截器会抛出一个异常,从而阻止该 SQL 语句的执行。

这样,即使有恶意用户尝试利用 SQL 注入来删除或更新整张表的数据,BlockAttackInnerInterceptor 也会确保这样的操作不会被执行。

但需要注意的是,BlockAttackInnerInterceptor 可以提供一定程度的保护,但它不是防止 SQL 注入的唯一手段。

@Configuration
@MapperScan({"com.ds.blog.system.mapper","com.ds.blog.admin.mapper"})
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //防全表更新删除插件
        mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
        return mybatisPlusInterceptor;
    }
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
  biE3E3UjTjeg   2024年01月22日   36   0   0 SQLSQL