使用 java.io.File.createTempFile 时 Veracode 不安全临时文件错误

D.P*_*TIT 6 java security file secure-coding veracode

我需要创建一个临时文件并将一些数据存储到其中。为此,我编写了以下代码:

import org.apache.commons.lang.RandomStringUtils;
import java.security.SecureRandom;

[...]

String random = RandomStringUtils.random(10, 0, 0, true, true, null, new SecureRandom());
File tempFile = File.createTempFile("PREFIX-" + random, ".pdf");

[...]
Run Code Online (Sandbox Code Playgroud)

它确实工作得很好,但是当我将此代码提交给Veracode 时,出现“不安全的临时文件(CWE ID 377)”错误。我认为使用SecureRandom会使临时文件名无法被攻击者预测。

在不使 Veracode 不满意的情况下生成临时文件的正确方法是什么?

Niv*_*eti 1

我认为这个问题在 Java 6 Update 11 版本中得到了解决。使用最新版本的 Java。