gpt4 book ai didi

java - 如何修复此发现错误新文件(filePath)中的潜在路径遍历

转载 作者:太空宇宙 更新时间:2023-11-04 11:14:51 25 4
gpt4 key购买 nike

public void createFile(String filePath) {
File file = new File(filePath);
}

change to ====>

public void createFile(String filePath) {
File file = new File(FilenameUtils.getFullPath(pathName),
FilenameUtils.getName(pathName));
}

但是潜在路径遍历仍然存在错误,如何修复这个发现错误?谢谢。

使用硬代码可以,但不符合我的要求。

public void createFile(String filePath) {
File file = new File("resource/image/",
FilenameUtils.getName(pathName));
}

最佳答案

修复此问题的方法之一是不使用变量输入来访问服务器上的文件。这里的建议之一 https://cwe.mitre.org/data/definitions/73.html

When the set of filenames is limited or known, create a mapping from a set of fixed input values (such as numeric IDs) to the actual filenames, and reject all other inputs. For example, ID 1 could map to "inbox.txt" and ID 2 could map to "profile.txt". Features such as the ESAPI AccessReferenceMap provide this capability.

您的代码仍然被 SonarQube 检测为无效,因为即使您使用 FilenameUtils.getName(),您的代码仍然使用用户提供的变量作为文件路径的一部分。

关于java - 如何修复此发现错误新文件(filePath)中的潜在路径遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45582480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com