要运行用户提供的 go、 Python 代码,该怎么做?

2020 年 12 月 13 日
 laravel

用什么比较实现起来简单,安全。

4962 次点击
所在节点    程序员
26 条回复
learningman
2020 年 12 月 13 日
docker
xiaket
2020 年 12 月 13 日
AWS lambda
auin
2020 年 12 月 13 日
无头无尾,无答案
laravel
2020 年 12 月 13 日
@learningman 自己实现呢?
@xiaket
toomlo
2020 年 12 月 13 日
@laravel #4 自己实现个 docker 也可以啊
xiaket
2020 年 12 月 13 日
@laravel 自己实现的话, 里面的细节多得吓人, 而且几十几百个细节有一个做不好就是送人 RCE, 你确定? 反正我是没胆量自己去做.
laravel
2020 年 12 月 13 日
@liuxey 就是用户提交的代码,要执行,给用户返回结果
neoblackcap
2020 年 12 月 13 日
最安全快捷的就是按需开虚拟机。
BiteTheDust
2020 年 12 月 13 日
可以研究一下各种 online judge 的做法
Greatshu
2020 年 12 月 13 日
评测机?有现成的
zxCoder
2020 年 12 月 13 日
据说是个大坑,强迫症不建议搞这个,或者找现成的评测机,(因为做不对绝对的安全,然后强迫症就会很烦,就是我了
loading
2020 年 12 月 13 日
这做得好能成立一家公司了,大坑。
joesonw
2020 年 12 月 13 日
docker 的话至少得上 AppArmor
性能不重要的话有 google 的 gvisor, 把 syscall shim 掉了, 绝对安全.
最好用虚拟机
或者 firecracker, kata 之类新轻量虚拟机也行
xyjincan
2020 年 12 月 13 日
定期还原
renmu123
2020 年 12 月 13 日
自己实现分分钟被黑掉
helsonxiao
2020 年 12 月 13 日
可以参考一下青岛大学开源的 OJ 项目
laravel
2020 年 12 月 13 日
这么复杂吗?我以为就是用 docker 那个原理,做下隔离、限制资源使用就行了
FS1P7dJz
2020 年 12 月 13 日
虚拟机啊...
vmware 本身就有现成的技术从模板创建新的虚拟机
根据性能几分钟左右就可以创建出一个完全隔离且全新的环境
sirgod
2020 年 12 月 13 日
go 的话可以用 playground https://github.com/golang/playground
QingXuJiaZhi
2020 年 12 月 13 日
go 好像问题不大,官方给出了 play.golang.org 的源码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/734957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX