数据后端脱敏
一般含敏感信息的数据会在后面处理好再返还给前端,因为数据脱敏如果交给前端去做,很可能会被工具截取造成信息泄露。
以之前的分页查询用户数据为例,对用户手机号等信息进行脱敏处理。在实现类定义一个脱敏的方法。以手机号码脱敏为例,截取手机号码前4位和后4位,中间以****拼接。
/** 用户数据脱敏**/public static void maskSensitiveInfo(List userList) {for (User user : userList) {String phone = user.getPhone();if (phone != null && phone.length() >= 7) {String prefix = phone.substring(0, 4);String suffix = phone.substring(phone.length() - 4);String maskStr = "****";String result = prefix + maskStr + suffix;user.setPhone(result);}user.setPassword(null);String openId = user.getOpenId();if (openId != null && openId.length() > 8) {String prefix = openId.substring(0, 4);String suffix = openId.substring(openId.length() - 4);String maskStr = "****";String result = prefix + maskStr + suffix;user.setOpenId(result);}}}
调用方法对数据进行脱敏
@Service
public class UserServiceImpl extends ServiceImpl implements IUserService {/*** 分页查询** @param dto 用户分页查询参数* @return 分页查询结果*/@Overridepublic Page findUserByPage(UserPageRequestDto dto) {// 如果有模糊查询条件,则使用模糊查询方法进行分页查询if (StrUtil.isNotBlank(dto.getFuzzyCondition())) {UserMapper userMapper = getBaseMapper();// 查询总数Integer total = userMapper.fuzzyPagingQueryTotal(dto);// 创建一个空的分页查询结果对象Page voPage = new Page<>();// 如果有数据则进行查询if (total != 0) {// 查询当前页数据List voList = userMapper.fuzzyPagingQuery(dto);// 对敏感信息进行处理maskSensitiveInfo(voList);voPage.setRecords(voList);}// 设置查询结果总数voPage.setTotal(total);return voPage;}// 没有模糊查询条件则使用普通查询方法进行分页查询LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();// 根据用户名查询if (dto.getUserName() != null) {queryWrapper.like(User::getUsername, dto.getUserName());}// 根据手机号查询if (dto.getPhone() != null) {queryWrapper.like(User::getPhone, dto.getPhone());}// 根据创建时间范围查询List dateRange = dto.getDateRange();if (dateRange != null && dateRange.size() == 2) {queryWrapper.between(User::getCreateTime, dateRange.get(0), dateRange.get(1));}// 根据创建时间倒序排序queryWrapper.orderByDesc(User::getCreateTime);// 创建分页查询对象Page pagin = new Page<>(dto.getPageIndex(), dto.getPageSize());// 进行分页查询page(pagin, queryWrapper);// 获取当前页的数据List userList = pagin.getRecords();// 对敏感信息进行处理maskSensitiveInfo(userList);return pagin;}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
