家居企业网站建设咨询,保定网站建设推广公司怎么样,浙江网警,哪里建设企业网站首先我们了解下这个漏洞是什么#xff1f;
MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件#xff0c;可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。
MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在…首先我们了解下这个漏洞是什么
MyBatis-Plus TenantPlugin 是 MyBatis-Plus 的一个为多租户场景而设计的插件可以在 SQL 中自动添加租户 ID 来实现数据隔离功能。
MyBatis-Plus TenantPlugin 3.5.3.1及之前版本由于 TenantHandler#getTenantId 方法在构造 SQL 表达式时默认情况下未对 tenant租户的 ID 值进行过滤当程序启用了 TenantPlugin 并且 tenant租户ID 可由外部用户控制时攻击者可利用该漏洞进行 sql 注入接管程序的数据库或向操作系统发送恶意命令。用户可通过对租户 ID 进行过滤缓解此漏洞。
影响版本 3.5.1
解决办法
1.不启用tenantId
2.必须使用tenantId的话,加过滤器对tenantId做处理
Test Version: 3.4.2
com.example.demo.config.MybatisPlusConfig com.example.demo.common.TenantHolder Interface for testing: /user?tid will returns a specified tenant data record.
com.example.demo.controller.HelloController db:
CREATE TABLE users ( id int(32) NOT NULL AUTO_INCREMENT, name varchar(32) NOT NULL, tenant_id varchar(64) NOT NULL, PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8;Test interface using blank parameters:
http://localhost:8080/user?tid Use or 11 and 123123 to perform sql injection and get all the data