如何修复MavenWrapperDownloader.java中的绝对路径遍历



安全扫描后,我在文件中得到错误绝对路径遍历

https://github.com/takari/maven-wrapper/blob/master/.mvn/wrapper/MavenWrapperDownloader.java

第50行:File baseDirectory=新文件(args[0](;

MavenWrapperDownloader.java实际上属于apache。。。有没有新版本的文件不会出错?

我找到了一个选项(https://portswigger.net/web-security/file-path-traversal)是使用

File file = new File(BASE_DIRECTORY, userInput);
if (file.getCanonicalPath().startsWith(BASE_DIRECTORY)) {
// process file
} 

但在java类中,他们已经在检查:

File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
...

有什么建议吗?

对我来说,下面的代码是Apache commons IO 的一部分

FilenameUtils.normalize(baseDirectory(

import org.apache.commons.io.FilenameUtils;
...
File mavenWrapperPropertyFile = new File(FilenameUtils.normalize(baseDirectory), MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if(mavenWrapperPropertyFile.exists()) {
...

最新更新