json、protobuf、thrift.md

什么是序列化

序列化就是把后端开发语言中的对象转换为二进制数据,反序列化就把二进制数据转换为后端开发语言的对象

事实上的跨语言序列化方案只有三个: protobuf, thrift, json

序列化的安全问题:

应该重视反序列化漏洞,毕竟Oracle都不得不考虑把java序列化废弃了

序列化漏洞的根本原因是:没有控制序列化的类型范围

防止序列化漏洞,最好是使用白名单

protobuf通过IDL生成代码,严格控制了类型范围

protobuf不是完美的方案,但是作为跨语言的序列化事实方案之一,IDL生成代码比较麻烦也不是啥大问题

原文地址:https://www.cnblogs.com/justblue/p/13022133.html