通过Java中的已发送数据进行信息曝光

时间:2016-07-05 22:02:55

标签: java security

我在Java代码中从veracode获取信息泄露。 这是我的代码:

// read file and write it into form...
     bytesRead = fileInputStream.read(buffer, 0, bufferSize);  

       while (bytesRead > 0) {

          dos.write(buffer, 0, bufferSize); 
          bytesAvailable = fileInputStream.available();
          bufferSize = Math.min(bytesAvailable, maxBufferSize);
          bytesRead = fileInputStream.read(buffer, 0, bufferSize);   

            }

缺陷就是这条线:dos.write(buffer, 0, bufferSize); 有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您应该拨打.write(buffer, 0, bytesRead)而不是.write(buffer, 0, bufferSize).read操作可能不会读取bytesSize个字节,而是可能会读取较小的块。

答案 1 :(得分:1)

我认为问题在于写入/读取是否会引发异常 - 这可能会显示出比Veracode想要的更多信息。 Security: CWE-201: What is the correct way to securely read a properties file using openStream?显示了如何包装IO代码 - 这可能会有所帮助。