Java null dereference - 微焦点安全漏洞

时间:2018-04-11 15:15:29

标签: java security null dereference microfocus

我正在查看我的项目的代码分析报告,并在null dereference上遇到了很多问题。

我们总是将对象声明为null。我们说

String str = null;

使用条件运算符执行业务逻辑

if(a.equals(b)){s =“Assigned”; }

然后将字符串赋值给值对象。

form.setString(STR);

我们在代码库中的每个地方都遵循类似的编码实践,并且在代码库中处理不完全无效。

但我们仍然遇到“null dereference”安全漏洞问题。我不认为这是一个有效的漏洞,因为我们在从VO访问任何变量之前不进行空检查。

可能有一个有效的参数,如果业务逻辑没有执行并在您的VO中设置null会发生什么。但它在访问之前处理得很好。

此外,

初始化空字符串(或任何原始数据类型)而不是null(使用等效项)时没有任何问题。如果我添加空检查而不是非空,这将有效。但是,集合框架呢?如果我初始化一个数组列表并实例化它(而不是null),它会为列表分配内存吗?

列出strList = new ArrayList();

请告知,如果我可以从报告中忽略这些空的解除引用问题,或者我应该通过实例化它来处理它们。

1 个答案:

答案 0 :(得分:0)

我和一位安全架构师谈过。如果可以证明代码段的这一部分不会产生空指针异常,则可以在工具中禁止此问题。但是需要适当的编码实践来避免在这种不需要的情况下使用null。