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