JAVA.FINAL.STATIC.VAR
非 final 静的変数の使用
脆弱性とリスク
JLS では、静的初期化子が使用されている場合でも、必ずしも変数が完全に初期化され、安全に公開されるわけではありません。
軽減と防止
静的変数を final として宣言することにより、安全に公開されるようにしてください。
脆弱コード例
コピー
package com.klocwork;
public class JAVA_FINAL_STATIC_VAR_POSITIVE {
static String out = "hello world";
public static void main(String args[]) {
System.out.println(out);
}
}
修正コード例
コピー
package com.klocwork;
public class JAVA_FINAL_STATIC_VAR_NEGATIVE {
final static String out = "hello world";
public static void main(String args[]) {
System.out.println(out);
}
}