running_snail_ 2023-09-22 12:16 采纳率: 0%
浏览 4

jvm sandbox为什么sandbox-spy.jar要放在bootstrapClassLoader加载

有使用jvm sandbox的吗?
想请问一下为什么sandbox-spy.jar要放在bootstrapClassLoader加载,而不是放在systemClassloader加载呢? 如果按照双亲委派的原则,放在systemClassLoder中加载不也可以从沙盒和目标类之间查找到吗?我有点不理解,哪位可以解释一下呢?

https://github.com/alibaba/jvm-sandbox

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-22 12:26
    关注

    引用 皆我百晓生 小程序回复内容作答:
    JVM Sandboxing是一种在Java虚拟机中实现代码隔离和访问控制的机制。在这种机制中,sandbox-spy.jar被设计为被放置在bootstrap ClassLoader中加载的原因是为了增强沙盒功能并防止安全漏洞。

    当一个类被加载时,JVM会按照双亲委派模型从上到下逐级加载类。bootstrap ClassLoader是JVM默认的最顶层类加载器,负责加载核心Java类库,这些类库通常被信任并且经过仔细审查,被认为是安全的。相比之下,system ClassLoader则负责加载用户代码,并且不具备相同的信任级别。

    将sandbox-spy.jar放置在bootstrap ClassLoader中,可以确保其代码在最高的安全级别下执行。这样做的目的是为了防止沙盒中的恶意代码通过加载到system ClassLoader中所加载的类,绕过沙盒的安全控制。

    通过这种安排,sandbox-spy.jar能够拥有更高的权限并与JVM的核心类库进行交互,实现对JVM内部的监控和管理。如果它被加载到system ClassLoader中,它将具备与普通用户代码相同的访问权限,这可能导致无法控制或监视沙盒内发生的事情,从而降低了沙盒的安全性。

    总之,将sandbox-spy.jar放置在bootstrap ClassLoader中是为了增强JVM Sandboxing的安全性,并有效地保护沙盒功能。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月22日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22