编写PHP代码实现简单反序列化

PHP反序列化

serialize(); 将对象序列化成字符串
unserialize(); 将字符串反序列化回对象

序列号

  • 对象转化成字符串
  • 方便传输
创建类、创建对象(序列号)
<?php
class Stu{
    public $name;
    public $age;
    public $sex;
    public $score;
}
    $stu1 = new Stu();
    $stu1->name = "z99";
    $stu1->age = 18;
    $stu1->sex = true;
    
    var_dump($stu1);
    print("<br>");
    $a=serialize($stu1);
	echo $a;
	print("<br>");
	$b=unserialize($a);
	var_dump($b);
?>

在这里插入图片描述

反序列化

字符串转换成对象

<?php
class Stu{
    public $name;
    public $age;
    public $sex;
    public $score;
    public function __wakeup(){
        if(@$_GET['cmd']=="z99"){
				system("calc");
			}
    }
}
    $stu1 = new Stu();
    $stu1->name = "z99";
    $stu1->age = 18;
    $stu1->sex = true;
    
    $stu2 = @serialize($stu1);
    unserialize($stu2)
?>

正常访问时无无回显
在这里插入图片描述
当cmd=z99时,会弹出计算器
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值