0
指定されたディレクトリとファイル名の接頭辞によって最新の修正ファイルを取得するには、以下のコードを使用します。 HPEの要塞分析を実行したとき、「パス操作」の結果が得られました。 あなたは私にこの発見を解決する方法を教えてもらえますか? Webアプリケーションのファイルシステムにアクセスするための最も安全なアプローチは何ですか?セキュリティの発見を強化する - CWE 22パス操作
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;
}
ホワイトリストを提供するために列挙型を作成しようとしましたが、強化版は同じ問題のコードをまだ文句を言います。 – mlo0424
Fortifyは静的解析ツールであるため、検証コードを確認することはできません。これで、アプリケーションをホワイトリストで保護したことがあるので、このFortifyの問題を偽陽性としてマークすることができます。 –