Mybatis-Plus добавляет плагин для запрета полного обновления таблицы и полной операции удаления таблицы. |
В реальной разработке проекта данные во всей таблице могут быть изменены или удалены из-за небрежности или злого умысла. Влияние этого на проект/продукт нельзя игнорировать.
выполнить :
MyBatis Plus предоставляет подключаемый модуль BlockAttackInnerInterceptor (парсер блочной атаки 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