【问题标题】:Is there something non-secure with serialization?序列化有什么不安全的吗?
【发布时间】:2015-09-13 03:22:30
【问题描述】:

我遇到了this article 声明:

“规则 9:让你的类不可序列化

序列化很危险,因为它允许攻击者掌握对象的内部状态。”

虽然我能理解作者的意思,但为什么不能只加密任何序列化数据?如果允许序列化数据的序列化不安全,那么正确的选择是什么?

【问题讨论】:

    标签: java security encryption serialization


    【解决方案1】:

    我认为作者的意思是你应该让你的类默认为不可序列化。也就是说,如果您有意序列化您的课程 - 请继续这样做。

    至于替代方案,您可以创建对象的 状态 的 json/xml 表示 - 而不会泄露实现的内部结构。

    您也可以按照您的建议对这些位进行加密。可以在this article 中找到如何使用位旋转的简单演示。

    【讨论】:

    • 这是一个非常令人满意的链接。谢谢。
    【解决方案2】:

    Bloch 的第 11 章,Effective Java 中的第 76 项涵盖了这一点。您需要仔细回读一个序列化的类,以防有人在它创建后对其进行了更改。基本上你需要一个防御性的readObject() 方法。

    【讨论】:

      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 2015-08-20
      • 2010-10-17
      • 2013-10-03
      • 1970-01-01
      • 2010-10-16
      • 2013-05-26
      • 2015-02-13
      相关资源
      最近更新 更多