[英]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.