MST

星途 面试题库

面试题:Java序列化中常见的安全漏洞有哪些

请简要阐述在Java序列化过程中,可能会出现的安全漏洞类型,并说明其产生的原因。
47.2万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

反序列化漏洞类型及原因

  1. 代码执行漏洞
    • 原因:当反序列化的数据来自不可信源(如网络请求),并且反序列化过程中使用了不安全的类(如ObjectInputStream对恶意构造的字节流进行反序列化),恶意攻击者可以精心构造包含恶意代码的序列化数据。在反序列化时,这些恶意代码会被执行,例如通过在序列化数据中嵌入可执行的Runtime.exec()等方法调用,从而导致服务器被入侵,执行任意系统命令等危险操作。
  2. 信息泄露漏洞
    • 原因:如果序列化对象中包含敏感信息(如数据库连接信息、用户密码等),并且在反序列化过程中,这些敏感信息没有得到适当的保护。恶意攻击者获取到序列化数据后,通过反序列化操作,可以获取到这些敏感信息,从而造成信息泄露。
  3. 拒绝服务(DoS)漏洞
    • 原因:恶意攻击者构造特别大或无限递归的序列化数据。在反序列化时,解析这些数据需要大量的系统资源(如内存、CPU等),从而导致应用程序响应缓慢甚至崩溃,造成拒绝服务攻击。例如,构造一个包含大量嵌套对象的序列化数据,反序列化时会不断创建对象,耗尽内存资源。