国家和住房城乡建设部网站,什么样建网站,网站建设项目管理绩效情况分析,南皮哪有做网站的在博客文章“ 将Google的协议缓冲区与Java结合使用 ”中#xff0c;我引用了乔什布洛赫#xff08;Josh Bloch#xff09;的第三版的有效Java #xff0c;他写道#xff1a;“没有理由在您编写的任何新系统中使用Java序列化。” Bloch建议使用“跨平台结构化数据表示形式”… 在博客文章“ 将Google的协议缓冲区与Java结合使用 ”中我引用了乔什·布洛赫Josh Bloch的第三版的有效Java 他写道“没有理由在您编写的任何新系统中使用Java序列化。” Bloch建议使用“跨平台结构化数据表示形式”而不是Java的反序列化。 拟议的JDK 11 API文档将包含有关使用Java反序列化的更强有力的声明 本文将对此进行简要介绍。 “ Java SE 1118.9 JSR 384 ”规范的第二稿包括一个称为“ API Specification Differences”的“ A2附件”其中包括对基于Javadoc的java.io软件包的更改。 新的java.io软件包文档将包含以下高级警告注释 警告不信任数据的反序列化本质上是危险的应避免。 应根据Java SE安全编码指南中的“ 序列化和反序列化 ”部分仔细验证不可信数据。 在撰写本文时所引用的Java SE安全编码准则指出其当前为6.0版并且已“针对Java SE 9更新”。 JDK 11中软件包java.io的预期软件包级文档还将提供指向以下其他参考的链接但可能是基于JDK 11的参考 Java对象序列化规范 JDK 10链接 串行过滤最佳实践 JDK 10链接 serialver工具 JDK 10链接 以前指向“ Java Object Serialization ”JDK 8文档的参考链接将从java.io的软件包文档中删除。 除了将在JDK 11中更新的与Java反序列化的危险有关的java.io软件包文档之外 java.io.Serializable接口的Javadoc注释也收到了类似的高级警告消息。 鉴于过去几年中有关Java序列化和反序列化的各种声明对JDK 11中基于Javadoc文档的这些更改不足为奇。 “ RFR 8197595序列化javadoc应该链接到安全性最佳实践 ”特别说明了添加此文档的必要性。 最近的InfoWorld文章名为“ Oracle计划转储有风险的Java序列化 ”和ADT杂志上的文章“ 从Java删除序列化是Oracle的 “ 长期目标” ”引用了Mark Reinhold在Devoxx UK 2018上的声明 即向 Java添加序列化是“ 1997年的可怕错误”。 之前曾有讨论删除Java序列化。 JEP 154创建删除序列化的目的是“弃用禁用并最终删除Java SE Platform的序列化工具。” 但是JEP的状态现在为“已关闭/已撤回”。 不过随着有关删除Java序列化的讨论越来越多为所有新系统考虑Java序列化的替代方法似乎是审慎的做法这正是Bloch在Effective Java 第三版中的建议 。 所有这些Apostolos Giannakidis在博客文章“ 序列化已死 序列化万岁 ”表示“反序列化漏洞不会消失”因为“ Java的本机序列化不是唯一有缺陷的序列化技术。” 其他参考 Java对象序列化规范 JDK 10序列化过滤 从Java中删除序列化是Oracle的“长期目标” 序列化已死 序列化万岁 Java的新有缺陷的序列化过滤初探 Java反序列化的风险 序列化不是Java的Heartbleed Bug Java反序列化安全性常见问题解答 幸存的Java反序列化启示录 OWASP AppSecEU 2016 CWE-502不信任数据的反序列化 翻译自: https://www.javacodegeeks.com/2018/06/beginning-end-java-serialization.html