赞
踩
如果项目使用的是Mybatis,按照Fortify给出的修复方案,给SQL中添加类似USER这样的查询条件来控制权限,扫描结果中依旧无法去除此漏洞。
理解此漏洞要表述的含义,无论我们使用何种方式只要处理了并且测试通过就可以了。
吐槽一下: 代码检查工具是按照固定规则来检查的,规则是死的人是活的的,实现方式千变万化,岂是扫描工具就能涵盖的,然而有些客户强制要求漏洞扫描结果为0,这里真的很想骂人。
为了满足客户这些奇葩要求,现在给出下面几种解决方案:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.4</version>
</dependency>
Service.java代码
// List<SystemActorRoleDto002> list = systemActorRole001Mapper.selectRoleModule(entity.getRoleId());
QueryWrapper<SystemActorRoleDto002> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("role_id", entity.getRoleId());
List<SystemActorRoleDto002> list = systemActorRole001Mapper.selectRoleModuleByWrapper(queryWrapper);
Mapper.java代码
// List<SystemActorRoleDto002> selectRoleModule(@Param("roleId") String roleId);
List<SystemActorRoleDto002> selectRoleModuleByWrapper(@Param("ew") QueryWrapper queryWrapper);
MybatisBaseDao
public interface MybatisBaseDao {
default <T> T findById(String statement, Object parameter) {
return SqlSessionUtils.getSqlSession(SpringContextUtil.getBean(SqlSessionFactory.class)).selectOne(statement, parameter);
}
default <T> List<T> findBatchById(String statement,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。