- 处理安全检查的项目代码异常解决记录
- 1、Password Management: Hardcoded Password
- 2、Access Specifier Manipulation
- 3、Null Dereference
从网络上查到的解释是:硬编码密码可能会以一种不易补救的方式危害系统安全。
发生原因是项目代码存在且包含password、pwd…等有关密码的名称
例如如下代码
// 密码
private String password = "admin"
如果被安全检查的软件扫描到这段代码则会提示Password Management: Hardcoded Password
解决方式:将明文的代码放到.yml配置文件或者.properties文件中
// --- java 代码
@Value(${password})
private String password;
// --- .yml文件
password: admin
// --- .properties文件
password = admin
2、Access Specifier Manipulation
从网络上查到的解释是:漏洞原因是映射相关,个人知识面不够,只能根据网络上的方案进行解决,漏洞主要代码如下
field.setAccessible(true)
解决方案:目前网络上只有使用spring框架下的解决方案,目前基本都是Spring框架在使用,所以目前的解决方案如下
//要导好对应的包
import org.springframework.util;
ReflectionUtils.makeAccessible(field);
3、Null Dereference
从网络上查到的解释是:空指针异常
发生原因是在项目代码中初始了一个对象为null,如:
//初始对象为null
User user = null;
//某种条件下赋值
if(true){
user = new User();
}
//在调用user办法的之前,没有做非空判断
user.setName("zhangsan");
//这里可能存在相关异常,当if:false的情况下,user是为null,所以当它执行user.setName("zhangsan");这个代码的时候会报错。
修复方案:
//初始对象为null
User user = null;
//某种条件下赋值
if(true){
user = new User();
}
//在调用user办法的之前,做非空判断
if(user != null){
user.setName("zhangsan");
}else{
throw Exception("user is null");
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)