PHP序列化与反序列化
PHP通过string serialize ( mixed $value )和mixed unserialize ( string $str )两个函数实现序列化和反序列化。
下面是比较典型的PHP反序列化漏洞中可能会用到的魔术方法:
void __wakeup ( void )
unserialize( )会检查是否存在一个_wakeup( ) 方法。如果存在,则会先调用_wakeup 方法,预先准备对象需要的资源。
void __construct ([ mixed $args [, $... ]])
具有构造函数的类会在每次创建新对象时先调用此方法。
void __destruct ( void )
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
public string __toString ( void )
__toString( ) 方法用于一个类被当成字符串时应怎样回应。例如 echo $obj;应该显示些什么。
此方法必须返回一个字符串,否则将发出一条 E_RECOVERABLE_ERROR 级别的致命错误。
未完.....待续
原文:https://www.cnblogs.com/zzhoo/p/12513851.html