大连旧房翻新装修哪家公司好班级优化大师免费下载app
大连旧房翻新装修哪家公司好,班级优化大师免费下载app,店面效果图制作软件,vi设计怎么做注#xff1a;比较简陋#xff0c;仅供参考。 编写PHP代码#xff0c;实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{
public $name;
public $age;
public $sex;
publi…注比较简陋仅供参考。 编写PHP代码实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{
public $name;
public $age;
public $sex;
public $score;
}创建对象 $stu1 new Stu();
$stu1-name zs;
$stu1-age 22;
$stu1-sex true;
var_dump($stu1);
echo br /;
echo serialize($stu1);反序列化 字符串转换成对象 Oobject 反序列化 以 __ 开头的函数是PHP 中的魔术方法。类中的魔术方法在特定情况下会自动调用。即使魔术方法在类中没有被定义也是真实存在的。__construct() 在创建对象时自动调用__destruct() 在销毁对象时自动调用__wakeup() unserialize()时会自动调用这个函数__sleep() serialize()时会自动调用这个函数PHP反序列化举例 可能会有小bug,问题不大 漏洞逻辑 当执行反序列化语句 $stu1 unserialize($stu1); 时系统会自动调用 stu() 类中的 __wakeup() 方法__wakeup() 方法调用函数a()函数 a() 调用函数 b()函数 b() 接收传参执行系统命令 ?php
// 定义函数 a()
function a(){// 调用函数 b()b();
}
// 定义函数 b()
function b(){
// 方法一// 如果参数 cmd 的值为 zs 则执行 system 打开计算器// if($_GET[cmd]zs){// system(calc);// }
// 方法二可以执行其他系统命令// 如果参数 cmd 的值为 calc 则打开计算器$cmd$_GET[cmd];system($cmd);
}
// 创建 stu 类
class Stu{// 定义属性public $name;public $age;public $sex;public $score;// 定义方法当执行 unserialize() 反序列化函数时自动调用 __wakeup() 方法public function __wakeup(){a();}}// 创建对象$stu1 new Stu();// 对象赋值$stu1-name zs;$stu1-age 22;$stu1-sex true;// var_dump($stu1);// 序列化$stu1 serialize($stu1);// var_dump($stu1);// 反序列化echo br /;$stu1 unserialize($stu1);// var_dump($stu1);? 验证
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85348.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!