我试图寻找某种方法来缓解应用程序前端的不安全反序列化漏洞。
然后我找到了这个链接
https://blog.jscrambler.com/exploring-the-owasp-top-10-by-exploiting-vulnerable-node-applications
我在链接中看到了这个:
A8-如果应用程序使用自定义序列化和反序列化,则会发生这种类型的攻击。此攻击要求了解该应用程序和所使用的序列化类型。通常,如果使用自定义序列化函数序列化和存储敏感数据,则会出现问题。攻击向量可以作为序列化参数发送。在反序列化参数时,有可能执行恶意代码。如果使用像JSON和XML这样的通用序列化技术,这不是一个问题。实施严格的类型约束可以减少风险。除此之外,应用程序不应接受来自外部源的序列化数据。
我只想确认我对黑体部分的理解。这是正确的吗?减轻此漏洞的方法之一是序列化为json对象或xml对象,然后在反序列化对象之后将其解析为预期的对象?
发布于 2021-07-23 07:54:50
在这个问题上得到一个明确的答案可能有点棘手。无论如何,让我们试一试,让我们回到根源。序列化是关于什么的?
序列化是将对象的内部状态转换为字节流。反序列化是将字节流转换回对象。我们通常进行序列化/反序列化的工作,目的是将数据存储在某个驱动器上或通过有线传输数据。
那么,在线路上传递JSON或XML对象与数据的序列化/反序列化有关吗?是。从不安全反序列化漏洞的角度来看,它是否相关?不是的。为什么会这样呢?这是一种历史性的东西。创建不安全反序列化漏洞一词是为了解决以前不知道的问题,这个问题主要与当时的Java应用程序有关(请看一下这里,它显示了一个辉煌的时间表)。JSON和XML的解析问题有它们自己的相关风险类别(比如A4:2017-XML外部实体和Java对象的反序列化(这可能导致远程代码执行),最初被认为涵盖了一个不同的方面。别弄错了。这不仅与Java相关。您也可以在PHP和其他语言中遇到问题,但它的目的是解决其他问题,尽管名称并不明确地意味着这一点。
尽管如此,这并不是共识,如果您面对一些安全工程师,您可能还会进行一些讨论,因为这只是一个定义问题。
https://security.stackexchange.com/questions/252620
复制相似问题