2

我有一个 JFrame,里面有一个 JPanel。我正在加载一些不受信任的第 3 方代码,这些代码需要向我的 JPanel 添加一些组件。如何对我的 JPanel 进行沙箱处理,以使第 3 方组件无法访问 JPanel 之外的资源(例如 JFrame)?

4

1 回答 1

0

这将很困难,因为您的 JPanel 扩展了具有 getParent() 的 JComponent,它将返回您的 JFrame...由于 Swing 中的每个组件都实现了它,因此您的第三方组件很可能也实现了它。您可以尝试覆盖这些方法,但我认为 swing 仍然无法正常工作,因为这样做会切断 ComponentTree...

你能解释一下你是如何加载不受信任的代码的吗?它是一个库还是你在运行时通过反射或类似的东西加载它?

于 2013-08-30T09:58:55.317 回答