什么是反序列化漏洞 有Protocol buffer这种轻便的序列化反序列化工具,Json为什么还会大量使用?
有Protocol buffer这种轻便的序列化反序列化工具,Json为什么还会大量使用?
原因很简单:
1、JSON是JavaScript本机支持,没有外部依赖项
2、JSON有人眼可读性
3、开发人员偷懒
关于序列化协议和框架,估计可以创建一个百科全书,比如:XML、JSON、bson、Hessian,协议缓冲区…
有很多不受欢迎的,排名不分先后。
虽然有各种各样的协议和框架,但序列化本质上可以分为两种类型:
二进制协议的优点是体积小、效率高。例如,协议缓冲区可以用来将数据压缩成位,序列化和反序列化具有良好的性能,非常适合各种系统通信和接口调用。
但问题也在这里,二进制数据几乎没有可读性,所以在程序的开发和调试中,更让程序员痛苦,尤其是频繁变化的数据结构。
文本协议恰恰相反,数据量大,性能差,但能满足可读性要求。例如,我们可以很容易地理解JSON或人肉结构数据的一部分。对于快速开发和web开发来说,它可以提高开发效率,开发人员不必过于关注协议或框架,只关注业务。
我的观点如下:
1。对于业务稳定、性能要求高的场景,应该优先考虑协议缓冲区等二进制序列化协议
2。对于性能要求低、业务变更频繁的场景,应优先考虑JSON和XML等待文本协议
您的问题价值220万美元。如果我不告诉普通人,你应该记住,如果你有问题,请报警并拨打110
对于新程序员,为了提高自己的编程能力,我从一个老程序员的角度给你以下建议:1。养成良好的编程习惯。
当高楼从地面升起时,基本技能非常重要。新手一定要有耐心,从注解、缩进、变量命名这些最基本的入手,培养自己良好的编程习惯。
2. 熟悉软件工程的思想
软件开发是一种团队合作。熟悉一些团队发展的工具和想法,将有助于你将来与同事合作。
软件开发是用计算机语言表达想法的过程。软件常用:分治、递归等基本思想理解。设计模式的设计原则也应该记住。总之,多读书,提高自己的理论水平。
4. 广泛参与
例如,你应该了解前卫技术的原理,如大数据、云计算、物联网、人工智能、区块链等。学习更多的商业知识
这是非常重要的,商业是技术的前提。这也是程序员和高级架构师必须掌握的能力。对于常见的电子商务系统、ERP系统、CRM系统、客户服务系统等大业务模块,各模块之间的关系是什么,掌握的越多越好。
6. 锻炼自己写文档的能力
软件开发的前台阶段是设计阶段。关注自己的文档能力对于将复杂的业务问题转化为计算机问题至关重要。
最后,祝您在编程的道路上一切顺利。
反序列化漏洞屡被黑客利用,危害巨大,代码怎样写才安全?
区别:
Dubbo默认协议:
单TCP长连接,Hessian二进制序列化和NiO异步通信
适用于小数据包,大并发服务调用和服务消费者数量远远大于服务提供者数量的情况
不适合大数据包服务
Hessian协议:
底层HTTP通信,servlet公开服务,Dubbo默认嵌入式jetty作为服务器
可与本机Hessian服务互操作
通信效率高于web服务和Java自身的序列化
参数和返回值需要实现可序列化的接口,以及列表、地图、数字、日期、日历等用户定义的接口
是的适合传输大数据包,提供商多于消费者,提供商压力更大。
什么是反序列化漏洞 反序列化漏洞原理 spring反序列化漏洞
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。