GAE啊GAE

本文探讨了GAE沙盒的实现原理,包括使用JETTY作为WEB容器、沙箱安全模型、自定义ClassLoader、JRE白名单等功能屏蔽及访问开放服务功能的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GAE沙盒的官方说明如下:

http://code.google.com/intl/zh-CN/appengine/docs/java/runtime.html#The_Sandbox 。 

 

 

   用过GAE中JAVA版本的都知道,GAE是使用JETTY 作为WEB容器的,并且采用了沙箱安全模型隔离各个应用。现在要探讨的问题就是,这个具体是如何实现的? 
经过鄙人粗略的研究,沙盒不仅仅使用了JAVA内含的基于安全管理器 的沙箱,而且似乎还新建了特别的类加载器(使某些类不能使用),还有其它一些措施(比如无法新增新线程,无法使用JNI等,这个方面目前还在研究中),大概可能还是用自定义的ClassLoader来实现对类的选择过滤,即建立了一个所谓JRE白名单 (http://code.google.com/intl/zh-CN/appengine/docs/java/jrewhitelist.html ) 。


   联想到TOMCAT的自定义ClassLoader模型,我觉得其实GAE所谓的“沙盒”无非其原理也就是类似于TOMCAT这样一个应用服务器中间件, 在继承自通用的JDK特性前提下,进行了更多的功能屏蔽,同时提供了JAVA级别的API来访问其开放的服务功能,比如通过JDO和JPA 两种方式来实现和其“数据存储区” 交互 并借助于其GFS分布式部署的特性以达到巨大的可伸缩性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值