我有以下方法:
public List<String> getZipFileList(String fullPath) throws IOException {
logger.debug("====> ZipService: getZipFileList <====");
List<String> fileList = new ArrayList<>();
try (ZipFile zipFile = new ZipFile(fullPath)) {
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
while (zipEntries.hasMoreElements()) {
String fileName = ((ZipEntry) zipEntries.nextElement()).getName();
fileList.add(fileName);
}
}
return fileList;
}
在枚举行中说出 Sonarqube 以下消息:
确保在此扩展此存档文件是安全的。
为什么这不安全?我该如何解决它?
由于 zip 炸弹问题,解压 zip 是不安全的,或者说 zip 可能包含不够安全而无法解压的文件
请参阅 https://wiki.sei.cmu.edu/confluence/display/java/IDS04-J.+Safely+extract+files+from+ZipInputStream 获取有效代码