Java序列化和反序列化

一、序列化和反序列化

1、含义

​ 序列化就是内存中的对象写入到IO流中,保存的格式可以是二进制或者文本内容。反序列化就是IO流还原成对象。

2、用途

(1)传输网络对象

(2)保存Session

二、Java序列化演示

1、序列化

java.io.ObjectOutputStream代表对象输出流,它的writeObject()方法可对参数指定的对象进行序列化,把得到的字节序列写到一个目标输出流中。

2、反序列化

java.io.ObjectInputStream代表对象输入流,它的readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。

三、反序列化漏洞

1、如果某个类需要自定义反序列化方式,可以重写类的readObject()方法。

2、在反序列化的过程中,会调用这个类的重写readObject()方法。

3、如果readObject()方法的代码有一些敏感操作,就可能会引发漏洞。

posted @ 2023-04-25 16:48  candada  阅读(127)  评论(0编辑  收藏  举报