Software and Data Integrity Failures(软件和数据完整性故障)
这是在 2021 年中,增加的新的类别.
在之前 2017 年版本中,是不安全的反序列化,但在 2021 年版本中包含在其中了.
本文来讲讲序列化吧
就以 PHP 为例吧,实际上大部分面向对象语言的序列化思路也是如此
序列化,说简单点就是把对象变成可以传输的字符串
下面是一段 PHP 代码.可以达到简单的序列化
class Demo{
public $test="Hello,World!"
}
$s=new Demo();
$se=serialize($s);
print_r($se)
这时候就会有这种结果
O:4:“Demo”:1:{s:4:“test”;s:12:“Hello,World!”;
从左到右依次分析
/*
O:代表object
4:是对象名称长度
Demo:对象名称
1:代表对象里面有一个变量
s:数据类型
4:变量名称长度
test:变量名称
s:数据类型
12:变量长度
Hello,World!:变量值
*/
反序列化也是很好理解的
class Demo{
public $test="Hello,World!"