我正在使用checkmarx
进行静态扫描,但在此问题上遇到了麻烦。它说
在
FileUtils.java
文件的第18行中发现了未经验证的数据库输出。在write
的第18行发现了可能的XSS利用。
我进行了搜索,但未找到任何有希望的解决方案。代码段:
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;
}
该报告说Source对象是buffer
,Destination对象是write
,但我没有找到此问题的根本原因。任何线索将不胜感激。谢谢