目录
反序列化-PHP
是什么?

什么是序列化?
对象→字符串
什么是反序列化?
字符串→对象
关键函数:
serialize() 将一个对象转换成字符串


unserialize() 将字符串还原成一个对象


格式
下图有错误,int型的时候不需要字符串长度以及双引号


思维导图

PHP里的等于号
=赋值
==值相等
===值相等,类型相等
分为两类:
1.无类
2.有类(就是有class)
有类就涉及到魔术方法(满足条件时会自动触发)
魔术方法参考网址:CTF PHP反序列化 - MustaphaMond - 博客园
常见魔术方法
1.__construct()//创建对象时触发
2.__destruct() //对象被销毁时触发
3.__call() //在对象上下文中调用不可访问的方法时触发
4.__callStatic() //在静态上下文中调用不可访问的方法时触发
5.__get() //用于从不可访问的属性读取数据
6.__set() //用于将数据写入不可访问的属性
7.__isset() //在不可访问的属性上调用 isset()或 empty()触发
8.__unset() //在不可访问的属性上使用 unset()时触发
9.__invoke() //当脚本尝试将对象调用为函数时触发
本文深入探讨了PHP中的序列化和反序列化过程,关键函数包括serialize()和unserialize()。反序列化是将字符串转换回对象的过程,可能会触发魔术方法如__construct()。同时,介绍了PHP中的等于号的不同含义以及类的类型检查。此外,还提及了Java的反序列化概念,为读者提供了跨语言的理解。
938

被折叠的 条评论
为什么被折叠?



