Google App Engine沙盒如何运作?

Google App Engine沙盒如何运作?

我需要做些什么来创建我自己的沙盒(为了安全地允许我的客户在我的引擎上运行他们的应用程序而不让他们能够格式化我的磁盘驱动器)? 它只是类加载器魔术,字节操作或什么?

您可能需要结合使用限制性类加载器并全面了解Java安全体系结构 。 您可能会使用指定的非常严格的SecurityManager运行JVM。

在Java案例中,我认为这主要是通过限制可用库来完成的。 由于Java没有指针概念,并且您无法上传本机编译的代码(仅限JVM字节码),因此无法打破沙箱。 添加一些严格的流程安排,你就完成了!

我想最困难的部分是选择库,使其在保持安全的同时有用。

在Python的情况下,他们不得不修改VM本身,因为它的设计并没有考虑到安全性。 幸运的是,他们有Guido自己去做。

安全地允许我的客户在我的引擎上运行他们的应用程序,而不让他们能够格式化我的磁盘驱动器

使用Java安全管理器可以轻松实现这一点。 请参阅此答案以获取示例。