限制对java、c++、python程序的权限



假设我必须在我的机器上运行一个java、c++或python3.8程序,但我不希望这些程序访问我的系统信息、运行os命令或执行任何恶意活动。对于上述每种语言,有没有一种方法可以做到这一点?

Java理论上有一个解决方案:"SecurityManager"。您可以在您的java代码中设置一个(您可以告诉系统:这是一些代码;请以管理员的身份加载它(。

在某些事情发生之前,安全管理员会被调用,并且可以拒绝操作。它主要是任何感觉安全敏感的东西:

  • 退出虚拟机
  • 打开任何文件
  • 打开任何网络连接
  • 设置安全管理器
  • 访问剪贴板
  • 打印东西
  • 可能影响螺纹负载的某些方面

您会告诉java运行您编写的某个类文件,该类文件设置一个安全管理器,然后运行您想要限制的应用程序。

请注意,使用SecurityManager并不能真正限制它使用的内存和/或CPU数量,这本身就可能是一个很大的问题。

问题是,该机制的主要用例是运行小程序,而小程序是死的。因此,这是java生态系统中目前很少有人使用的功能,而且很少使用的黑名单式机制通常漏洞百出。

我强烈建议您为此设置一个虚拟机。基于虚拟机监控程序的限制也存在漏洞,但"在虚拟机中托管东西并确保它不能对底层机器执行操作"更为常见。

相关内容

  • 没有找到相关文章

最新更新