没有合适的资源?快使用搜索试试~ 我知道了~
PaaS沙盒机制原理分析.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 139 浏览量
2022-07-07
22:58:16
上传
评论
收藏 287KB PDF 举报
温馨提示
试读
4页
PaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdfPaaS沙盒机制原理分析.pdf
资源推荐
资源详情
资源评论
PaaS sandbox 实现原理分析
首先需要明确,对于一个 PaaS,什么是需要做限制的。
1、资源限制 :资源的使用率和使用方式
2、边界控制(或者叫安全控制): 保证不同程序的托管代码不会对平台自身及其他不同
的代码造成伤害。
明白了这一点,我们再来看看这两者需要如何实现。
PaaS 搭建的是一个包含操作系统、网络环境、Webserver、CGI 脚本解析器的整体环境,
其结构大致如下:
[CGI 语言]->[Webserver]->[POSIX 环境]->[系统内核]->[网络]->[其他资源(数据库等)]
① 大多数情况下多数 PaaS 的 sandbox 限制是做在 CGI 脚本语言这一层的。原因有
二,一个是目标明确,如果你在其他底层做限制,可能会误伤到其他进程,牵扯太广。另一
个是在语言层面实现的细粒度更全,出现疏漏,定位容易也更安全。毕竟是和用户交互的第
一层。
但是如果将 sandbox 做在这一层,为了做资源限制,很多时候会改变 CGI 语言
原本的 api。例如用 php 可能需要 disable 一些 function,用 python 可能取消去掉某些
使用多线程的模块(实际上还是很多的)。这些会大大影响一些用户的使用习惯,某些开源
程序也因此无法使用。
② 将大部分控制都做在 POSIX 环境以及系统内核这一层上。目前主要是国外的一些
云厂商是这么做的,例如 appfog,zend 云等(都架构在亚马逊的 IaaS 上)。做在这一
层的特点是学习成本少,不需要改用户习惯。但是坏处也很明显:因为将安全控制退居二线
到操作系统层,因此他的每个 app 的边界也就扩大了,经常只能一个虚拟机只能跑一个
app,否则就可能互相影响。因此这带来的成本就会很大(一个 app 一个虚拟机,或许还
会更多)
三、 具体实现:
修改 CGI 脚本语言这一层做的实现
有的语言本身就考虑到了类似场景,例如 php 的 disable_function 和
safe_mode,例如 Java 的 securityManager,例如 bash 的"-r"等等。有的语言则
需要亲自动手去阉割一些内容。例如python。当然,合理并用应用两者才是比较好的
实现方式。
一般的脚本语言源代码,通常分为三大部分:
一个是语言本体的语法解析,内存结构
一个是语言自身内部底层 api
另一个则是语言自身携带的编程标准库
拿 php 源码做例子,zend 目录下主要都是语言结构等部分,main 目录下是一些内部
api,而 ext 目录下则是 PHP 自带标准库的内容;Python 源代码中,Grammar、Parser
和 Objects 分别是语法解析和内存结构,Python 目录下是内部 api,Modules 和 Lib
资源评论
คิดถึง643
- 粉丝: 3879
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功