簡體   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