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 変数を変更することで、アプリケーションをハングさせたり、予期しない動作を引き起こしたりすることができます。