根据该文件 ,它是不安全与不信任的输入使用unserialize。
作为测试,我写道:
<?php
global $secret;
$secret = 'SuperSecret';
class Thing {
public static function __wakeup() {
var_dump($GLOBALS);
}
public function __unserialize() {
return 'okay';
}
}
if (isset($_GET['s'])) {
echo 'serializing=';
echo serialize(new Thing() );
}
$unser = unserialize($_GET['thing']);
?第一次去S,那么就说明:O:5: “东西”:0:{}
转到事= O:5:“东西”:0:{},它会显示所有的全局变量 - 安全风险?
但是,如果有任何类,它具有这样的不安全__wakeup()函数? 是不是反序列化对于不具备“不安全” __wakeup功能(绝大多数)系统安全吗?