Я использую checkmarx
для статического сканирования, и я застрял в этой проблеме.В нем говорится, что
Непроверенный вывод БД был найден в строке 18 в файле FileUtils.java
.Возможная эксплуатация XSS была обнаружена в write
в строке № 18.
Я искал это, но не нашел многообещающего решения.Фрагмент кода:
public static Map<String, byte[]> getSomething(InputStream is) throws IOException {
Map<String, byte[]> classes = new HashMap<String, byte[]>();
try (ZipInputStream stream = new ZipInputStream(is)){
ZipEntry entry;
while ((entry = stream.getNextEntry()) != null) {
try(ByteArrayOutputStream out = new ByteArrayOutputStream()) {
byte[] buffer = new byte[2048];
String entryName = entry.getName();
int len = 0;
while ((len = stream.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
if (out.size() > 0 && entryName.endsWith(".class")) {
String className = entryName.substring(0, entryName.length() - ".class".length()).replaceAll("/", ".");
classes.put(className, out.toByteArray());
}
}
}
}
return classes;
}
В отчете говорится, что исходным объектом является buffer
, а целевым объектом является write
, но я не могу найти причину этой проблемы.Любые выводы будут оценены.Спасибо