- VSCode环境自定义配色方案
- 如果空间可以绑定多个域名,但不支持绑定子目录,实现跳转的方法
- 如何判断网站优化是否到位?
- ASP.NET缓存:方法和最佳实践
- 抽象类和接口区别
- FileUpload过滤文件类型
- 图片向上滚动(一格一格的)
- 弹出错误提示:不合法的日期格式欧哲日期超出限定范围,需要撤销吗
- DataListItem 类
- 在C# webapi中的 [FromBody] [FromForm]的区别
邮箱:
手机: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);
-
2019-11-25dtcms标签语法说明
-
2021-12-21datetime.now() 和 datetime.utcnow()
-
2013-06-11request.form("参数") 与 request("参数")
-
2020-08-18小程序登录流程图理解
-
2013-04-29网站备案注销方法 关于网站备案问题的解答
-
2019-11-25dtcms模板引擎
