2

通过 checkmarx 分析代码时,我面临路径遍历漏洞。我正在使用以下代码获取路径:

String path  = System.getenv(variableName);

并且“路径”变量值正在遍历许多函数,并最终在一个函数中使用,代码片段如下:

File file = new File(path);

Checkmarx 将其标记为中等严重性漏洞。

请帮忙。如何解决它以使其与 checkmarx 兼容?

4

2 回答 2

0

我相信 Checkmarx 会接受作为消毒剂的其他答案包括Path.normalize

import java.nio.file.*;

String path  = System.getenv(variableName);
Path p = Paths.get(path);
Path normalizedPath = p.normalize();
path = new File(normalizedPath.toString());

FilenameUtils.normalize方法:

import org.apache.commons.io.FilenameUtils;

String path  = System.getenv(variableName);
path = new File(FilenameUtils.normalize(path));
于 2021-03-30T02:15:24.600 回答
0

您可以通过调用生成规范化路径File.getCanonicalPath()

在你的情况下:

String path  = System.getenv(variableName);
path = new File(path).getCanonicalPath();

有关更多信息,请阅读Java 文档

于 2021-03-26T11:12:49.883 回答