ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 什么是序列化 **把Java对象转换为字节序列的过程称为对象的序列化(Serialization)** 目的是方便对象在内存、文件、数据库或者网络之间的传递 ## 什么是反序列化 **把字节序列恢复为Java对象的过程称为对象的反序列化(DeSerialization)** 序列化的逆过程 ## 什么是反序列漏洞 就是再用户输入反序列化字符串的时候,没有对其进行严格的过滤,导致攻击者可以输入一些危险代码,从而能够拿到目标权限甚至能够上传后门木马,拿到getshell 反序列化不光存在于PHP当中,还有JAVA、python等语言当中,但是原理都是相通的 PHP反序列化漏洞也叫PHP对象注入,是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果 ## 反序列化漏洞危害 * 远程代码执行 * 权限提升 * 任意文件读取 * 拒绝服务攻击 ## 反序列化的防御 * 应该尽量避免用户输入反序列化的参数 * 如果确实需要对不受信任的数据源进行反序列化,需要确保数据未被篡改,比如使用数字签名来检查数据的完整性 * 严格控制反序列化相关函数的参数,坚持用户所输入的信息都是不可靠的原则 * 对于反序列化后的变量内容进行检查,以确定内容没有被污染 * 做好代码审计相关工作,提高开发人员的安全意识 ## 反序列化分类 有类:定义了类,带有魔术方法 无类