39

Java的序列化特性即将被剔除

 5 years ago
source link: https://www.linuxprobe.com/java-mark-reinhold.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
导读 甲骨文公司正计划将安全方面的一大棘手难题对象序列化功能从Java当中剔除出去。这项功能亦被称为Java对象序列化,主要用于将对象编码为字节流形式。除了用于轻量化持久性与通过套接字或Java RMI进行通信之外,序列化功能还支持从字节流中重构对象图。

甲骨文公司Java平台部门首席架构师Mark Reinhold表示,去除序列化机制是一项长期目标,亦是其专注于面向Java语言功能生产力强化目标的Amber项目的重要组成部分。

为了替换现有序列化技术,甲骨文方面将在相关记录(即Java版本的数据类)获得支持之后,向Java平台中添加一套小型序列化框架。该框架能够支持记录图,而开发人员亦可接入自己选择的序列化引擎、支持JSON或XML等格式,并以安全方式实现记录序列化功能。不过Reinhold目前还无法确定记录功能将正式登陆Java的哪个版本。

根据Reinhold的说法,序列化功能堪称诞生于1997年的一个“可怕错误”。他估计,至少有三分之一甚至是半数Java安全漏洞都与序列化机制有关。序列化总体而言存在巨大安全风险,但Reinhold表示其在简单用例当中的出色易用性仍具有一定吸引力。

最近,Java刚刚迎来了过滤功能,因此如果开发者必须在网络之上使用序列化功能且愿意接受不可信序列化数据流,则可借此选择需要过滤掉的类以实现针对序列化安全弱点的防御机制。Reinhold指出,甲骨文公司目前收到大量运行在网络之上的应用服务器的报告,并发现其中相当一部分在未受保护的端口上使用序列化流。正是为了解决这一问题,过滤功能才应运而生。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK