- 一、序列化和反序列化
- 二、Java序列化演示
- 三、反序列化漏洞
一、序列化和反序列化
1、含義
? 序列化就是內(nèi)存中的對象寫入到IO流中,保存的格式可以是二進制或者文本內(nèi)容。反序列化就是IO流還原成對象。
2、用途
(1)傳輸網(wǎng)絡(luò)對象
(2)保存Session
二、Java序列化演示
1、序列化
java.io.ObjectOutputStream代表對象輸出流,它的writeObject()方法可對參數(shù)指定的對象進行序列化,把得到的字節(jié)序列寫到一個目標(biāo)輸出流中。
2、反序列化
java.io.ObjectInputStream代表對象輸入流,它的readObject()方法從一個源輸入流中讀取字節(jié)序列,再把它們反序列化為一個對象,并將其返回。
三、反序列化漏洞
1、如果某個類需要自定義反序列化方式,可以重寫類的readObject()方法。
2、在反序列化的過程中,會調(diào)用這個類的重寫readObject()方法。文章來源:http://www.zghlxwxcb.cn/news/detail-424960.html
3、如果readObject()方法的代碼有一些敏感操作,就可能會引發(fā)漏洞。文章來源地址http://www.zghlxwxcb.cn/news/detail-424960.html
到了這里,關(guān)于Java序列化和反序列化的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!