SV.SERIAL.NOWRITE

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

漏洞与风险

如果一个类未使用正确的签名实施“writeObject”方法,则将使用“defaultWriteObject”提供的默认序列化。攻击者可以将您的对象序列化为可读取的字节数组。这将允许攻击者检查您对象的完整内部状态。

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

缓解与预防

实施方法“private void writeObject(java.io.ObjectOutputStream out) throws IOException”。

示例 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.NOWRITE。

安全培训

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