微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Input_Path_Not_Canonicalized - checkmarx 中的 PathTravesal 漏洞

如何解决Input_Path_Not_Canonicalized - checkmarx 中的 PathTravesal 漏洞

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

String path  = System.getenv(variableName);

"path" 变量值遍历多个函数,最后在一个函数中使用,代码片段如下:

File file = new File(path);

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

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

解决方法

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

就你而言:

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

欲了解更多信息,请阅读Java Doc

,

我相信 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));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。