JNDI注入的理解、JDK给出的修复

本文介绍了RMI远程方法调用的工作原理,然后深入探讨了JNDI接口及其在分布式环境中的作用。重点讨论了JNDI注入漏洞,通过可控的lookup参数可能导致远程代码执行。最后,提到了JDK针对不同版本提供的修复措施,如启用useCodebaseOnly和禁止远程codebase选项。
摘要由CSDN通过智能技术生成

RMI

RMI(Remote Method Invocation):一种执行远程调用的Java API。RMI的目的是使在不同计算机上运行的对象(Object)之间的调用行为类似于本地调用。

RMI机制:服务器(Server)应实现一定的功能并将其注册到注册表(Registry)中,客户端(Client)应在注册表的命名空间(Naming space)中获取对象。

分布式编程中有一种基本思想就是远程方法调用。使用远程方法调用,必然会涉及参数的传递和执行结果的返回。参数或者返回值可以是基本数据类型,当然也有可能是对象的引用。所以这些需要被传输的对象必须可以被序列化,这要求相应的类必须实现 java.io.Serializable 接口,并且客户端的serialVersionUID字段要与服务器端保持一致

在JVM之间通信时,RMI对远程对象和非远程对象的处理方式是不一样的,始终有两个中间对象实际处理通信:存根(stub object)骨架(skeleton object),RMI远程调用逻辑是这样的:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偷偷学习被我发现

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值