甲骨文称 Java 序列化的存在是个错误,计划删除 - 开源中国社区
Float_left Icon_close
甲骨文称 Java 序列化的存在是个错误,计划删除
达尔文 2018年05月28日

甲骨文称 Java 序列化的存在是个错误,计划删除

达尔文 达尔文 发布于2018年05月28日 收藏 10

甲骨文计划从 Java 中去除序列化功能,因其在安全方面一直是一个棘手的问题。 Java 序列化也称为 Java 对象序列化,该功能用于将对象编码为字节流...Oracle 的 Java 平台小组的首席架构师 Mark Reinhold 说:“删除序列化是一个长期目标,并且是 Project Amber 的一部分,它专注于面向生产力的 Java 语言功能。”


为了替换当前的序列化技术,一旦记录,会在平台中放置一个小的序列化框架,支持 Java 版本的数据类。该框架可以支持记录图形,开发人员可以插入他们选择的序列化引擎,支持 JSON 或 XML 等格式,从而以安全的方式序列化记录。 但 Reinhold 还不能确定哪个版本的 Java 将具有记录功能。 序列化在 1997 年是一个“可怕的错误”,Reinhold 说。 他估计至少有三分之一甚至是一半的 Java 漏洞涉及序列化,序列化总体上是脆弱的,但具有在简单用例中易于使用的特性。

编译自:InfoWorld

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:甲骨文称 Java 序列化的存在是个错误,计划删除
分享
评论(48)
精彩评论
30
甲骨文称收购Java是个错误,计划分离
22
不管怎么说,JAVA在完善,在改进,值得赞一个,不管它再哪个公司手里
13

引用来自“草原神兽”的评论

甲骨文称收购Java是个错误,计划分离

引用来自“Schr0dingerCat”的评论

甲骨文称收购Java怎么会是个错误,这空手套白狼,套的谷歌一愣一愣的:smirk:
谷歌被罚不怪他自己?一边说尊重开源社区一边违反开源协议,还那么多人为他呐喊..
8
序列化确实有可能引入漏洞,但大多数是使用不当导致的。这方面,Java里引起的重视还不够,PHP得到的教训就比较突出。比如:https://blog.csdn.net/qq_32400847/article/details/53873275
5

引用来自“草原神兽”的评论

甲骨文称收购Java是个错误,计划分离
甲骨文称收购Java怎么会是个错误,这空手套白狼,套的谷歌一愣一愣的:smirk:
最新评论
0

引用来自“草原神兽”的评论

甲骨文称收购Java是个错误,计划分离

引用来自“Schr0dingerCat”的评论

甲骨文称收购Java怎么会是个错误,这空手套白狼,套的谷歌一愣一愣的:smirk:

引用来自“撸脱臼”的评论

谷歌被罚不怪他自己?一边说尊重开源社区一边违反开源协议,还那么多人为他呐喊..
违反的应该不是开源协议,而是Java的授权协议吧?
1
现在是个新语言都想超过java,甲骨文轻点,别把java搞凉了就行,还有,如果甲骨文缺钱了,告一下谷歌又有几个亿了(手动滑稽)
0
确实序列化这种功能应该让第三方来实现
0
Java 安全方面有待改进,Windows 已经允许 Java 跨平台了,应该可以获取 Windows 权限进行校验。
1

引用来自“鳄鱼的眼泪”的评论

的确,有了序列化,单例对象只是个传说

引用来自“节节草”的评论

单例主要还是程序员人为编写控制的,就算没有序列化,人为控制不当单例也能是多例。规矩还是要守的,不然干脆写几个死循环得了,还管那些漏洞干嘛呢
对小项目来说,定一些规矩没问题,问题是项目大了,人员多了,而且人员不断变化,了解整个系统的人越来越少,许多不可思议的bug就出来了,比如明明是个单例模式的对象,却在整个内存中出现了多个。
所以我是支持程序语言尽量简化,不要太过灵活。
序列化放在语言层面,不仅增加了语言复杂度,我相信很多人都不知道反序列化一个父类没有实现Serializable接口的对象时,父类构造函数也会调用。还不能控制序列化格式,比如json。
0

引用来自“草原神兽”的评论

甲骨文称收购Java是个错误,计划分离
这就是外行言论。也是没办法
0
Java的存在是个错误
0
标题容易引起歧义。。。
0
甲骨文:java就是一个错误,计划删除。
0

引用来自“鳄鱼的眼泪”的评论

的确,有了序列化,单例对象只是个传说
单例主要还是程序员人为编写控制的,就算没有序列化,人为控制不当单例也能是多例。规矩还是要守的,不然干脆写几个死循环得了,还管那些漏洞干嘛呢
0

引用来自“闲大赋”的评论

我先预定 fastAmber 这个开源了,请大家不要占用,更不要使用fasterAmber,fasterstAmber moreFastAmber,谢谢:laughing:

引用来自“httpmad”的评论

AmberFinal:ghost:
:clap::clap::clap: 算你厉害!
0

引用来自“闲大赋”的评论

我先预定 fastAmber 这个开源了,请大家不要占用,更不要使用fasterAmber,fasterstAmber moreFastAmber,谢谢:laughing:
AmberFinal:ghost:
0

引用来自“草原神兽”的评论

甲骨文称收购Java是个错误,计划分离

引用来自“Schr0dingerCat”的评论

甲骨文称收购Java怎么会是个错误,这空手套白狼,套的谷歌一愣一愣的:smirk:

引用来自“撸脱臼”的评论

谷歌被罚不怪他自己?一边说尊重开源社区一边违反开源协议,还那么多人为他呐喊..

引用来自“张伟斌卍”的评论

俩流氓比谁更流氓罢了
谷歌自己搞了一套不兼容jvm的东西,当然要被搞
0
我先预定 fastAmber 这个开源了,请大家不要占用,更不要使用fasterAmber,fasterstAmber moreFastAmber,谢谢:laughing:
0
重来不用java的序列化
0
其实,早在1998年,就已经提出了这个问题了,但是当时的Sun公司没有表态,没有任何行动,还大力支持这个漏洞,将近了20年。现在,可好了,他爸爸现在说不要破玩意,序列化了,让这些使用序列化的他们,慢慢的跟着我们的步伐前进吧。谁让我是Java老大啊,我说咋办,就咋办。。。。。。。。。。。。。。
0
字节流虽然快 但是带来的其他问题更严重
2
只是说将现有的序列化,逐步替换成更加安全的序列化方案而已,小编这标题就是引战的
0

引用来自“红薯”的评论

我擦+1
:sweat_smile:
0

引用来自“乌龟壳”的评论

此序列化非彼序列化,主要不是说的序列化二进制本身,而是如何通过序列化数据自动生成对象,关键是【自动】这个操作问题很多。
1、凡是实现了java.io.Serializable的序列化数据,好像都能被反序列化,只要你的系统有支持它的Class。2、想想反序列化一个 URLClassLoader 立即static块执行可以加载执行远程代码是多么危险的事情(某些JSON库可能背锅)。
顶部