Google App Engine沙盒如何运作?
我需要做些什么来创建我自己的沙盒(为了安全地让我的客户在我的引擎上运行他们的应用程序而不让他们能够格式化我的磁盘驱动器)?它只是类加载器魔术,字节操作或什么?
答案 0 :(得分:9)
您可能需要结合限制性类加载器和对Java Security Architecture的透彻理解。您可能会使用指定的非常严格的SecurityManager来运行JVM。
答案 1 :(得分:2)
在Java案例中,我认为这主要是通过限制可用库来完成的。由于Java没有指针概念,并且您无法上传本机编译的代码(仅限JVM字节码),因此无法打破沙箱。添加一些严格的流程安排,你就完成了!
我想最困难的部分是选择库,使其在保持安全的同时保持有用。
在Python案例中,他们必须修改VM本身,因为它的设计并未考虑到安全性。幸运的是,他们有Guido自己去做。
答案 2 :(得分:0)
安全地允许我的客户在我的引擎上运行他们的应用程序而不让他们能够格式化我的磁盘驱动器
使用Java安全管理器可以轻松实现这一点。请参阅this答案以获取示例。