反序列化漏洞

序列化和反序列化概念

序列化和反序列化是相对的,你可以就将其理解为数据的的编码和解码过程。一种语言系统下的数据结构只有在当前这个系统下才能够识别运行;当数据需要跨语言跨系统传输时,必须将其转成一种中间结构【文本,JSON XML ,自定义结构】,这个中间结构能被双方识别、还原,这个过程就是序列化和反序列化。
通常的使用场景:
通常有两个用途, 存储和传输 ,其实都是转储(转储,由一存储介质转移到另一存储介质)
1. 最常见的是将数据由 内存存储到硬盘 。数据或者对象在俩者之间的表示是有区别的,为了能在两者 之间还原对象,需要以特定的方式读取和写入数据或者对象。
2. 又比如,在 PHP 中表示的一个数据对象结构和 Javascript 表示的对象结构是不同的。那么通过将 java 中的一个数据对象序列化成一个Javascript 能够识别结构( JSON 格式 ), javascript 就能将其还原 成语义相同的数据,在Javascript 执行环境下运行
3. 还有图像数据的传输你也可以认为是一个序列化和反序列化的过程,在传输前将图像信息序列化成 一个二进制数据流带上图像格式信息,接收方在接收到二进制流后识别出图像格式,将其还原为相 应的图像对象显示出来
4. 打游戏,很多游戏都需要通关, 100 关,通道了 90 关, 存档 = 》 序列化的过程, 读取存档的过程 =》反序列化
总结:
序列化,将数据结构或 对象 转换成二进制串的过程。
反序列化,将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。
无论是进程间、线程间的通讯,或者 client server 通过 socket 通讯,还是把对象写到 db (实际上也是socket)。 这些交互都是通过收发
  • 41
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值