为什么“ Serializable”类中的字段应该是瞬态的或可序列化的?

问题描述 投票:-1回答:1

在我们的应用程序中,对于一个类(可序列化),声纳抱怨-“可序列化”类中的字段应该是瞬态的或可序列化的。该类未在应用程序中的任何地方序列化。但是我不确定为什么要实现可序列化,因为该类是很久以前编写的。

根据Sonar的文档,即使该类从未显式序列化或反序列化,Serializable类中的字段本身也必须是可序列化的或瞬态的。但是我没有找到任何确切的原因。

[您能否解释一下,如果“ Serializable”类中的字段不是瞬态或可序列化的,为什么对它有害?如果该类从未显式序列化或反序列化,那么这里的危害是什么?

我正在经历Fields in a “Serializable” class should either be transient or serializable,但是我没有找到我的问题的正确答案。我发现以下声明,但不太了解

例如,在负载下,大多数J2EE应用程序框架将对象刷新到磁盘,并且具有非瞬态,不可序列化数据成员的所谓可序列化对象可能会导致程序崩溃,并为攻击者敞开大门。通常,当实例被序列化时,期望Serializable类履行其约定并且不具有意外行为。

感谢

java sonarqube sonarqube-scan
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.