SV.SERIAL.NON

当一个类实施 Serializable 接口时,将出现 SV.SERIAL.NON。JVM 将不会控制对象的最终反序列化。

漏洞与风险

完成序列化的对象将超出 Java Runtime Environment 的控制范围,因此也不受 Java 提供的安全措施控制。虽然实现数据的序列化并不会造成问题,但对 JVM 无法控制的对象进行最终反序列化会带来风险。风险级别因组织政策而异。

Klocwork 安全漏洞 (SV) 检查器可识别可能创建危险数据的调用;这些调用被视为不安全的来源。用户所提供的任何数据都可能是不安全的来源,因为用户可能是攻击者,或者可能引入人为错误。

缓解与预防

除非必要时,避免实施 Serializable。如果确实要实施 Serializable,对包含系统资源句柄或地址空间相关信息的字段使用暂态。

示例 1

复制
 public class SV_SERIAL_NON_Sample_1 implements Serializable {
 }

针对类 SV_SERIAL_NON_Sample_1 报告 SV.SERIAL.NON,该类实现了 java.io.Serializable。

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。