繁体   English   中英

加强安全性发现— CWE 22路径操纵

[英]Fortify security finding — CWE 22 Path Manipulation

我有以下代码,可以通过给定目录和文件名前缀获取最新的修改文件。 当我运行HPE要塞分析时,它给了我“路径操纵”的发现。 你们可以指导我如何解决这个问题吗? 什么是访问Web应用程序文件系统的最佳和安全方法?

public static File getLatestFilefromDirWithFileName(String archivesDirectoryPath, String fileStartWith){    
    File archivesDirectory = new File(archivesDirectoryPath);

    FilenameFilter textFilter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            if (name.startsWith(fileStartWith)) {
                return true;
            } else {
                return false;
            }
        }
    };

    File[] filesInArchiveDir = archivesDirectory.listFiles(textFilter);
    if (filesInArchiveDir == null || filesInArchiveDir.length == 0) {
        return null;
    }

    File lastModifiedFile = filesInArchiveDir[0];
    for (int i = 1; i < filesInArchiveDir.length; i++) {
       if (lastModifiedFile.lastModified() < filesInArchiveDir[i].lastModified()) {
           lastModifiedFile = filesInArchiveDir[i];
       }
    }

    return lastModifiedFile;
}

您必须确保archivesDirectoryPath不允许访问明智的文件夹。

一种方法是验证指定的文件夹将位于白名单中。 此白名单可以在您的代码中定义,也可以由“管理员”用户配置。 尝试处理不在此列表中的文件夹将引发异常。

您可以检查是否没有在文件夹名称中使用/../ ,但是检查结果文件夹是否属于白名单就足够了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM