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。