簡體   English   中英

使用 java.io.File.createTempFile 時 Veracode 不安全臨時文件錯誤

[英]Veracode Insecure Temporary File error when using java.io.File.createTempFile

我需要創建一個臨時文件並將一些數據存儲到其中。 為此,我編寫了以下代碼:

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");

[...]

它確實工作得很好,但是當我將此代碼提交給Veracode 時,出現“不安全的臨時文件(CWE ID 377)”錯誤。 我認為使用SecureRandom會使臨時文件名無法被攻擊者預測。

在不使 Veracode 不滿意的情況下生成臨時文件的正確方法是什么?

使用 CreateTemp 文件(在較低版本的 java 中)創建文件時,它將首先創建一個具有給定后綴和前綴以及隨機數的文件名。 格式-->前綴+隨機數+后綴。 如果生成的名稱已經存在,它只會增加隨機數。 這里出現了算法中的問題,其中 v 可以猜測下一個文件名是什么。

該問題已在 Java 6 中解決。但如果您在 veracode 中進行靜態掃描,它們仍會將其顯示為錯誤,因為它們會導致 Java 版本低於 6 的易受攻擊的問題。如果您使用更高版本,則沒問題。 跳過它..

來自veracode的參考: https ://www.veracode.com/blog/2009/01/how-boring-flaws-become-interesting

我認為該問題已在 Java 6 Update 11 版本中解決。 使用最新版本的 Java。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM