序列化:将对象型数据转换成字符串 , serialize()。
反序列化顾名思义便是将字符串还原换成对象 , unserialize()。
序列化的目的是方便数据的传输和存储,在PHP中,序列化和反序列化一般用做缓存,比如session缓存,cookie等.
a:2:{i:0;s:5:”Ssh1y”;i:1;s:7:”Sherkey”;}
-
a:array代表是数组,后面的2说明有三个属性
-
i:代表是整型数据int,后面的0是数组下标
-
s:代表是字符串,后面的5是因为Ssh1y长度为5
依次类推
这里突然出现了 __construct
这就涉及到php反序列化中的魔术方法了
我们可以利用在线工具来验证下这些魔术方法
根据输出结果我们可以明显看到魔术方法的触发时机,这里的__sleep
有个特性,如果它没有return一个值,就会返回一个N;,
大致原理就是这些。接下来我们进入实战:
我们先采用从内至外的分析方法,先找代码执行点
观察分析这个对象&#