有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    如果验证器与DefaultValidator相同,那么它只检查文件大小。但它检查的是缓冲区的大小,而不是文件的大小,所以可能什么都不会做

    将文件发送到浏览器时,如果内容类型不是html类型,则不会出现任何XSS问题。如果您将内容类型设置为application/octet-stream,那么它将在不执行任何操作的情况下下载