16

Google App Engine 沙盒如何工作?

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

4

3 回答 3

9

您可能需要结合使用限制性类加载器和对Java 安全架构的透彻理解。您可能会在指定非常严格的 SecurityManager 的情况下运行 JVM。

于 2009-08-04T03:56:39.340 回答
2

在 Java 案例中,我认为主要是通过限制可用库来完成的。由于Java没有指针的概念,而且不能上传本地编译的代码(只有JVM字节码),所以不能跳出沙箱。添加一些严格的进程调度,你就完成了!

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

在 Python 案例中,他们不得不修改 VM 本身,因为它的设计没有考虑到安全性。幸运的是,他们有 Guido 自己来做这件事。

于 2009-08-04T03:50:53.923 回答
0

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

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

于 2010-09-07T05:12:19.460 回答