版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、伤口撕开,给你看唯品会资深工程师开年的第二天序列化,又见序列化WhatJava 序列化将一个对象转换为流,反序列化则是将对象流转换为实际程序中使用的 Java 对象的过程。序列化可以用于轻量级的持久化、通过 Sockets 进行传输、或者用于 Java RMI。可序列化的对象需要实现 java.io.Serializable 接口或者 java.io.Externalizable 接口。RMI是Remote Method Invocation的,是J2SE的一部分,能够让程序员开发出基于Java的分布式应用。一个RMI对象是一个Java对象,可以从另一个Java虚拟机上(甚至跨过网络)调用它的
2、,可以像调用本地Java对象的一样调用对象的,使分布在不同的JVM中的对象的外表和行为都像本地对象一样。而 RMI 对于对象的调用使用了 Java 的序列化和反序列化。WhatWhatStaff.ser0000000:0000010:0000020:0000030:0000040:0000050:0000060:aced686f7a616f5a4c006c6186a00005702e7469625f046e6e677400737276756f6e0200616d2f53044200246c732e530249657474726f73636f2e73746100060012696e736d2e6
3、572666673614c6a 673b76696961d8a96c616176787070736c69a07f7279612f0001.vipshop.vuls.seriali zation.Staff.oZb_.I.salary L.namet.Ljava/ lang/String;xp.t.Bosshead0000000:0000010:0000020:0000030:0000040:0000050:0000060:aced686f7a616f5a4c006c6186a00005702e7469625f046e6e677400737276756f6e0200616d2f530442002
4、46c732e530249657474726f73636f2e73746100060012696e736d2e6572666673614c6a 673b76696961d8a96c616176787070736c69a07f7279612f0001.vipshop.vuls.seriali zation.Staff.oZb_.I.salary L.namet.Ljava/ lang/String;xp.t.BossClassDesc0000000:0000010:0000020:0000030:0000040:0000050:0000060:aced686f7a616f5a4c006c6186
5、a00005702e7469625f046e6e677400737276756f6e0200616d2f53044200246c732e530249657474726f73636f2e73746100060012696e736d2e6572666673614c6a 673b76696961d8a96c616176787070736c69a07f7279612f0001.vipshop.vuls.seriali zation.Staff.oZb_.I.salary L.namet.Ljava/ lang/String;xp.t.BossClassData0000000:0000010:00000
6、20:0000030:0000040:0000050:0000060:aced686f7a616f5a4c006c6186a00005702e7469625f046e6e677400737276756f6e0200616d2f53044200246c732e530249657474726f73636f2e73746100060012696e736d2e6572666673614c6a 673b76696961d8a96c616176787070736c69a07f7279612f0001.vipshop.vuls.seriali zation.Staff.oZb_.I.salary L.nam
7、et.Ljava/ lang/String;xp.t.Boss结构WhatWhatHow敏感泄露拒绝服务代码执行敏感泄露拒绝服务命令执行Why序列化的流是遵循标准协议格式的ObjectInputStream 默认不提供校验流的 API可以反序列化任意当前 classloader 能加载的类即使最后类RMI 默认失败,对象依然会被创建到所有网卡上缓解措施对序列化的流数据进行加密在传输过程中使用 TLS 加密传输对序列化数据进行完整性校验对 RMI的 IP 进行限制泄露对象校验1)序列化对象的属性可以通过实现 validateObject来进行对象属性值的校验。步骤如下: 实现 ObjectInp
8、utValidation 接口并重写 validateObject;实现,并Validation。Object对象校验2)整个对象的上面的虽然能够对字段进行验证,但其验证时机是在 流之后,所以只能够对正常的序列化对象进行验证, 对于畸形或者 序列化对象来说 为力。在序列化的流中,对象的描述是先于数据的,这就给了我们在流完成之前进行验证的机会。是,通过重写ObjectInputStream 的 resolveClass()来实现。这样, 我们需要自定义一个对象流读取类继承自ObjectInputStream ,重写 resolveClass(),然后反序列化的时候使用的类。反序列化流程对象校验有人利用这个原理写了一个反序列化命令执行的防护工具,可以参考。内网 IPRMI内网 IPRMI个性化服务器框架提供标准化功能扫描器增加规则网关增加规则配置 Java 安全策略参考文献Java序列化示例Serialization in Java Java SerializationSurviving the Java Serialization Apocalypseapocalypse-owasp-appseceu-2016J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026综合评价面试题及答案
- 教学资料-感恩老师主题班会-完整版课件
- 文化传播行业策划部年度总结
- 健康小班我出汗了
- 头部拨筋健康宣教
- 驾驶员安全行车考核办法
- 肥胖专科护理查房
- 医院手术室隐患排查及整改措施
- 《药品经营和使用质量监督管理办法》考试题(附答案)
- 2025年放射医学技术(师)考试题库及答案
- KTV消防安全应急预案
- 2026弥勒市财政局公开招聘编外工作人员(3人)考试备考题库及答案详解
- 无砟轨道工艺性试验总结讲诉
- 2026-2030中国AKT抑制剂行业市场现状分析及竞争格局与投资发展研究报告
- 2026中国民生银行私银财富经理招聘笔试备考试题及答案详解
- 建筑行业工程质量检测与监管方案
- 建设年产1GWh储能电池Pack系统集成项目可行性研究报告模板-立项拿地
- 动车组网络控制系统-CRH2A、CRH380A型动车组网络控制系统
- 校服供货服务方案
- 《微波法原油含水率在线检测仪》
- 单招考试培训班的教师培训与专业知识更新计划
评论
0/150
提交评论