智康360软件测试3

在进一步软件测试中,对智康360的Service端进行了全面的测试调查,发现了部分存在安全隐患的软件漏洞,下面将进行具体介绍及提出修改建议。

问题剖析:

一.密码安全性问题

在测试中发现Service端用户登录的密码使用明文存储,存在一定的安全隐患;

为确保用户的隐私,提高软件使用的安全性,可以使用如下步骤:

1.导入密码加密工具类

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

引入 Spring Security 提供的 BCryptPasswordEncoder,该工具使用 BCrypt 哈希算法,能自动生成随机盐值,确保相同密码多次加密结果不同,且内置抗彩虹表攻击机制,保证了用户密码的安全性。

2.初始化密码编码器

private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

创建一个单例的 BCryptPasswordEncoder 实例供全局使用。

3.修改登录验证逻辑

if (!passwordEncoder.matches(account.getPassword(), dbAdmin.getPassword())) {
    throw new CustomException(ResultCodeEnum.USER_ACCOUNT_ERROR);
}

比较用户输入的密码和数据库存储的加密密码是否匹配。

流程:

  •          account.getPassword():用户提交的原始密码(明文)。
  •          dbAdmin.getPassword():数据库存储的加密密码。
  •          passwordEncoder.matches():

                  -自动解析加密密码中的盐值。

                  -用相同算法对用户输入密码加密。

                  -比对结果是否一致。

使用上述用法,即使数据库泄露,攻击者也无法逆向破解原始密码。

二、批量删除优化

在测试中发现,管理员端在删除数据时,为循环单条删除。这样在需要进行大量的删除工作时,会导致软件的性能收到影响且事务安全不高。为解决这一隐患,可以在后端添加如下代码:

@Transactional
public void deleteBatch(List<Integer> ids) {
    if (ids == null || ids.isEmpty()) {  // 参数检查
        return;
    }
    adminMapper.deleteBatchIds(ids);      // 调用Mapper执行批量删除
}

同时需要配套的Mapper实现:

<!-- 在AdminMapper.xml中需要实现 -->
<delete id="deleteBatchIds">
    DELETE FROM admin WHERE id IN
    <foreach collection="list" item="id" open="(" separator="," close=")">
        #{id}
    </foreach>
</delete>

完成如上步骤后,可实现数据的批量删除,提高软件的性能。

以上便是本次的智康360软件测试结果,在不断的测试与优化中,智康360的功能逐步完善,为用户提供更加精准便捷的健康体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值