CXX.STATIC.OBJ.FINAL

初期化された public 静的フィールドは final としてマークされていません

オブジェクトには final とマークされていない初期化された public 静的フィールドが含まれており、予期しない方法でそれらが変更される可能性があります。

脆弱性とリスク

public 静的変数は、アクセサーなしで読み取ることができ、アプリケーション内のどのクラスでもミューテーターなしで変更できます。

軽減と防止

最後の 'const' 宣言子で、public 静的フィールドを宣言します

脆弱コード例

コピー
class SomeAppClass {
public
        static string appPropertiesConfigFile = "app/properties.config";        // Should be const
};

上記の例では、初期化された public 静的文字列変数が、アプリケーションにとって意図しない方法で、変更される可能性があります。この例では、存在しない他のプロパティファイルを表示するように、String 変数を変更することで、アプリケーションをハングさせたり、予期しない動作を引き起こしたりすることができます。