界: Code Quality

コードの質が低いと、予測できない動作につながります。ユーザーの視点には、それがしばしば使い勝手の悪さとなって現れます。攻撃者にとっては、予期せぬ方法でシステムにストレスを与える機会となります。

Code Correctness: Incorrect serialPersistentFields Modifier

Abstract
serialPersistentFields を正しく使用するには、privatestatic、および final として宣言する必要があります。
Explanation
Java Object Serialization Specification により、開発者は、serialPersistentFields 配列内で指定して、クラスの Serializable フィールドを手動で定義できるようになります。この機能は、serialPersistentFieldsprivatestatic、および final として宣言されている場合にのみ奏功します。

例 1: 次の宣言では、serialPersistentFields が、privatestatic、および final ではないため、Serializable フィールドの定義には使用されません。

class List implements Serializable {
public ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("myField", List.class) };
...
}
References
[1] Sun Microsystems, Inc. Java Sun Tutorial
[2] SERIAL-2: Guard sensitive data during serialization Oracle
[3] Standards Mapping - CIS Azure Kubernetes Service Benchmark 1
[4] Standards Mapping - CIS Amazon Elastic Kubernetes Service Benchmark 5
[5] Standards Mapping - CIS Amazon Web Services Foundations Benchmark 1
[6] Standards Mapping - CIS Google Kubernetes Engine Benchmark normal
[7] Standards Mapping - Common Weakness Enumeration CWE ID 485
desc.structural.java.code_correctness_incorrect_serialpersistentfields_modifier