什么是序列化?序列化有什么作用? 您所在的位置:网站首页 群青有什么作用 什么是序列化?序列化有什么作用?

什么是序列化?序列化有什么作用?

#什么是序列化?序列化有什么作用?| 来源: 网络整理| 查看: 265

    反序列化是一系列安全问题的根源:攻击者能够将恶意数据序列化并存储到数据库或内存中,当应用进行反序列化时,应用会执行到恶意代码。  

    在谷歌内部,这个缺陷被称为“疯狂的小部件 (Mad Gadget)”,外界对它的叫法是 “Java 启示录 (Apocalypse)”。

      所以有一系列的规范来最大化避免: 

       1)对序列化对象执行完整性检查或加密,以防止恶意对象创建或数据篡改;最常见的例子之一就是JWT:JWT由3部分组成:Header,Payload,Verify Signature,最后的签名部分其实就是对数据进行完整性校验的关键部分,用secret对数据部分进行哈希计算,随后检查计算出来的哈希值是否和请求中的JWT签名部分的哈希值相同。若两者一致则认为数据完整性没有被破坏,若两者有差异则说明数据被修改过。

      2)在创建对象之前强制执行严格的类型约束;

      3)隔离反序列化的代码,使其在非常低的特权环境中运行;

      4)记录反序列化的例外情况和失败信息,如:传入的类型不是预期的类型,或者反序列处理引发的例外情况;

      5)限制或监视来自于容器或服务器传入和传出的反序列化网络连接;

      6)监视反序列化,当用户持续进行反序列化时,对用户进行警告。

  

目前JAVA常用的序列化有protobuf,json,xml,Serializable,hessian,kryo。

  protobuf:谷歌公司出的一款开源项目,转码性能高,支持多语言;

  JSON:用途最广泛,序列化方式还衍生了阿里的fastjson,美团的MSON,谷歌的GSON等更加优秀的转码工具。      优点:使用方便。      缺点:数据冗长,转码性能一般。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有