问:有没有办法沙盒Go程序?
答:是的.参见GAE w/Go或play.golang.org
这是怎么做到的?
在我的特定情况下,我想允许用Go编写的不受信任的扩展.我想Go Goground正是我所需要的.它是开源的吗?或者至少有一些关于如何构建类似服务的文档?
code.google.com/p/go-playground是Go Playground编辑器的源代码.但沙箱隐藏在POST后面http://golang.org/compile?output=json.
zzz*_*zzz 12
游乐场沙盒技术是AFAIK,不是开源的.其中一个原因是,我认为,公开披露实施细节会使任何攻击尝试都变得更加容易.
我建议,如果滚动自己的沙箱,提供假的/空的/有限版本的{unsafe,runtime,net,os,syscall}包,并禁止GOMAXPROCS高于1.但是设计必须根据您的定义进行定制一个沙箱.文件访问是/否/限制?网络是/否/限制?等等......最后但并非最不重要的一点是,应该禁用CGO,汇编代码甚至可能构建标签.
考虑上面的列表是不完整的.
据http://blog.golang.org/playground介绍,Go Playground 中的沙箱使用 NaCl 来限制 CPU 和 RAM 使用。它的代码已合并到 go 版本 1.3 中。
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |