- 联合办公
- 如何做好网站的内链?
- 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- 提升用户体验度要注意的几点
- 一些应该熟记于心的jQuery函数和技巧
- SEO中导致网站降权具体表现及解决办法
- .net 时间函数大全
- 从零开始学习jQuery(剧场版) 你必须知道的javascript
- 微信小程序里的模块代码到底用import导入还是require导入
- IIS中301跳转与307跳转的区别
邮箱:
手机:15383239821
PHP的序列化和反序列化入门
serialize() //将一个对象转换成一个字符串
unserialize() //将字符串还原成一个对象
通过 序列化 与 反序列化 我们可以很方便的在PHP中进行对象的传递。本质上反序列化是没有危害的。但是如果用户对数据可控那就可以利用反序列化构造payload攻击
<?php
highlight_file(__FILE__);
class sunset{
public $flag='flag{asdadasd}';
public $name='makabaka';
public $age='18';
}
$ctfer=new sunset(); //实例化一个对象
echo serialize($ctfer);
?>
返回结果
O:6:"sunset":3:{s:4:"flag";s:14:"flag{asdadasd}";s:4:"name";s:8:"makabaka";s:3:"age";s:2:"18";}
O代表对象,这里是序列化的一个对象,要序列化数组的就用A
6表示的是类的长度
sunset表示对是类名
3表示类里面有3个属性也称为变量
s表示字符串的长度这里的flag表示属性
比如s:4:"flag" 这里表示的是 flag属性名(变量名)为4个字符串长度 字符串 属性长度 属性值
什么是反序列化
这里是把上面序列化之后返回的数据进行反序列化

$str='O:6:"sunset":3:{s:4:"flag";s:14:"flag{asdadasd}";s:4:"name";s:8:"makabaka";s:3:"age";s:2:"18";}';
$a=unserialize($str);
var_dump($a);
-
2023-09-21php中die是啥
-
2022-02-11$.extend()详解
-
2012-07-02如何在百度知道留下你的链接.
-
2019-11-20C# 数据类型---值类型和引用类型
-
2011-03-20不支持连接表达式
-
2010-12-09如何分析网站日志
