SV.SERIAL.NOREAD

如果一个类直接或间接地实施“java.io.Serializable”接口,但未定义方法“private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException”,将针对此类报告 SV.SERIAL.NOREAD。

漏洞与风险

如果一个类未使用正确的签名实施“readObject”方法,则将使用“defaultReadObject”提供的默认序列化。因此,此类得以免受反序列化,且攻击者可以创建反序列化为您类的实例的字节序列。

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

缓解与预防

实施方法“private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException”。

示例 1

复制
  public class SV_SERIAL_Sample_1 implements Serializable {
  
       public static void main(String[] args)
       {
               System.out.println("Hello World!");
      }
 }

针对第 5 行的类“SV_SERIAL_Sample_1”声明报告 SV.SERIAL.NOREAD。

安全培训

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