报告可以序列化或反序列化的类。

如果一个类支持 Serializable 接口,并且它的 readObject()writeObject() 方法未定义为总是抛出异常,那么就可以被序列化。 在供安全使用的代码中,可序列化的类可能比较危险。

示例:


  class DeserializableClass implements Serializable { // 此类不包含抛出异常的 'writeObject()' 方法
    private int sensitive = 736326;

    private void readObject(ObjectInputStream in) {
        throw new Error();
    }
}

在应用快速修复后:


  class DeserializableClass implements Serializable {
    private int sensitive = 736326;

    private void readObject(ObjectInputStream in) {
        throw new Error();
    }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
        throw new java.io.NotSerializableException("DeserializableClass");
    }
  }

使用以下选项配置检查: