gpt4 book ai didi

java - Instant.readObject 方法 "Defend[s] against malicious streams"是什么意思?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:43:10 24 4
gpt4 key购买 nike

阅读 Instant 类的源代码,我碰到了这个方法

/**
* Defend against malicious streams.
*
* @param s the stream to read
* @throws InvalidObjectException always
*/
private void readObject(ObjectInputStream s) throws InvalidObjectException {
throw new InvalidObjectException("Deserialization via serialization delegate");
}

描述让我很好奇。什么是“恶意流”?这种方法是如何防御的?

最佳答案

Instant 和其他 java.time 类使用包作用域委托(delegate) - java.time.Ser 进行序列化。查看 writeReplace 方法以了解如何创建委托(delegate)。

因此,调用 readObject 方法的唯一方法是有人传入恶意流(为尝试创建无效对象而创建的唯一目的)。该异常确保阻止此类恶意流。

一般来说,任何时候使用序列化委托(delegate)时,您都应该考虑像这样阻止 readObject

关于java - Instant.readObject 方法 "Defend[s] against malicious streams"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34222571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com