Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在沙箱中运行不受信任的Java Swing应用程序?_Java_Security_Swing_Sandbox - Fatal编程技术网

如何在沙箱中运行不受信任的Java Swing应用程序?

如何在沙箱中运行不受信任的Java Swing应用程序?,java,security,swing,sandbox,Java,Security,Swing,Sandbox,我发现Java有一些安全权限来控制对AWT资源的访问。有什么方法可以控制Swing应用程序可以做什么或不能做什么,以避免不受信任的应用程序在多应用程序环境中相互干扰 例如: 打开JFrame 打开一个完全透明的JFrame 正在关闭其他不受信任的应用程序的JFrame实例 等等 问题更新: 不受信任的应用程序从唯一的JVM在单独的线程中启动,并从单独的类加载器加载。我想知道如何确保上述中断示例不会发生 另外,如何通过模仿不受信任的应用程序的UI来防止该应用程序假装来自其他应用程序?欢迎提供任

我发现Java有一些安全权限来控制对AWT资源的访问。有什么方法可以控制Swing应用程序可以做什么或不能做什么,以避免不受信任的应用程序在多应用程序环境中相互干扰

例如:

  • 打开JFrame
  • 打开一个完全透明的JFrame

  • 正在关闭其他不受信任的应用程序的JFrame实例
  • 等等
问题更新:

不受信任的应用程序从唯一的JVM在单独的线程中启动,并从单独的类加载器加载。我想知道如何确保上述中断示例不会发生


另外,如何通过模仿不受信任的应用程序的UI来防止该应用程序假装来自其他应用程序?欢迎提供任何建议。

我不确定你想做什么是可能的。AWT有一组权限,在沙箱中运行应用程序时可以配置这些权限(请参阅),但它们非常有限,似乎更适合防止小程序做坏事

除此之外,阻止一个应用程序模仿另一个应用程序似乎是不可能的;如果两个应用程序都可以创建UI组件,那么是什么阻止一个应用程序创建与另一个相同的UI组件呢


如果你有一个你信任的应用程序和一个你不信任的应用程序,那么你需要这些应用程序无法控制的代码来以不同的方式运行它们;例如,一个疯狂的想法是在不受信任的应用程序周围设置一个红边框的窗口管理器,这样用户就可以将其识别为不受信任的应用程序。但是当both应用程序运行在同一个JVM中,因为似乎没有任何方法来隔离这两个应用程序(一个简单的FocusListener可以允许一个应用程序访问另一个应用程序的组件并对其进行更改).

关闭其他不受信任的应用程序的JFrame实例,这将如何实现?Java应用程序无法做到这一点。在只使用1个jvm的多应用程序环境中,是什么阻止了您这样做?单独的应用程序通常由单独的类加载器加载,因此我仍然不知道一个应用程序如何能够关闭创建的JFrame通过调用其“close”函数,例如,如果它找到了获取其引用的方法。@Vincent,我认为您应该更新您的问题,以指示如何在单个JVM中启动这些应用程序。这可能会使问题变得可回答。在当前上下文中,@Kaj提出的观点是有效的。我们需要知道您是如何启动多个Swing应用程序的。您的crazy的想法并不疯狂,但我想知道它是否足够有效。我的结论是Java没有为我想做的事情提供足够的应用程序隔离支持。谢谢你的回答。我意识到浏览器为UI提供了更好的隔离工作,我可能会尝试使用他们的Javascript扩展沙袋来实现我的目标。