城南彼岸花复开 发表于 2021-1-22 16:30

php 反序列化一个问题

本帖最后由 城南彼岸花复开 于 2021-1-22 16:46 编辑

如下代码,使用序列化private后出现O:7:"student":1:{s:17:"studentpassword";s:6:"123456";},把private的值放到反序列化后发现报错了,求解是什么原因?


初步了解是有%00在student变量两边,但是不知道private和protected该如何反序列化,求大佬开导一下,万分感谢!{:301_975:}


代码:

<?php
class student
{
    //public $money='s1885207154a';
    private $password='123456';//private反序列化不出来
      //protected $id='007';

}
//$s=new student();

//$s_serialize=serialize($s);
//print_r($s_serialize);
//echo"</br>";
//error_reporting(0);


$student=O:7:"student":1:{s:17:"studentpassword";s:6:"123456";}
$r_unserialize=unserialize($student);
print_r($r_unserialize);
echo"</br>";
error_reporting(0);


使用get传参后,在student变量旁边加上两个%00又能成功传private变量
?>

fllow 发表于 2021-1-22 16:43

字符串里的冒号加转义符试试我不确定

q_p 发表于 2021-1-22 16:56

你rul编码提交试试
页: [1]
查看完整版本: php 反序列化一个问题