安全扫描后,我在文件中得到错误绝对路径遍历:
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()) {
...