java如何在将文件流写入outputStream时激活XSS?
Veracode报告说,在将文件流写入outputStream时,我的应用程序将面临XXS的风险。我试图用ESAPI来解决这个问题,但同样的问题仍然有报道。我该怎么办
public static int copyStream(InputStream in, OutputStream out, int buffer)
throws IOException {
byte buf[] = new byte[buffer];
int len;
int ttl = 0;
while ((len = in.read(buf)) != -1) {
try {
buf = ESAPI.validator().getValidFileContent(IOUtil.class.getName(), buf, 50000000, false);
out.write(buf, 0, len);
ttl += len;
} catch (IntrusionException e) {
e.printStackTrace();
} catch (ValidationException e) {
e.printStackTrace();
}
}
out.flush();
in.close();
out.close();
return ttl;
}
# 1 楼答案
如果验证器与DefaultValidator相同,那么它只检查文件大小。但它检查的是缓冲区的大小,而不是文件的大小,所以可能什么都不会做
将文件发送到浏览器时,如果内容类型不是html类型,则不会出现任何XSS问题。如果您将内容类型设置为
application/octet-stream
,那么它将在不执行任何操作的情况下下载