Java Jackson json到对象去私有化.如何处理OWASP不安全的反序列化



OWASP不安全的反序列化威胁是众所周知的。我的问题是,当我们在java部分使用像Jackson等解析器库时,如何减轻这种威胁?

使用Hibernate验证或Java验证的验证能解决问题吗?或者是否存在任何特殊或更好的技术来缓解这个问题?

首先,整个反序列化是关于Java对象的反序列化。这与XML解组或读取JSON无关。还有其他漏洞类可以处理这些问题。

假设您的代码接受一个Java类作为输入(可以是Bas64编码的,并通过REST端点提供(。为什么会有人这么做?好吧,如果你想远程存储状态,那么你可以序列化Java类,在需要的时候发送和接收它。毫无意义?詹金斯不久前就这么做了。

真正的问题不是反序列化,而是在反序列化期间阻止代码执行。如何防止调用readObject()?它将被自动调用。防止Java代码中发生的事情是一件痛苦的事情。

您可以尝试使用notsoserial或SerialKiller,但这不会使您的代码更简单、更易于阅读。真正有效的一件事是不在代码中的任何地方使用不受信任对象的反序列化。

最新更新