如果在 PaaS 上部署 Online Judge
比如在 Google App Engine 上部署 Online Judge
和普通的 OJ 相比,实现是否会变得更为简单?
安全性是否也会相应提升?
本文由 vps网友提供,转载请注明出处
本文链接: https://www.vpsvsvps.com/discuss/a/1676471750449172480.html
比如在 Google App Engine 上部署 Online Judge
和普通的 OJ 相比,实现是否会变得更为简单?
安全性是否也会相应提升?
本文由 vps网友提供,转载请注明出处
本文链接: https://www.vpsvsvps.com/discuss/a/1676471750449172480.html
@virusdefender 感谢
@wph95 上面的回复 @貌似没管用,你可以看下 8 楼的问题。
@holyghost
Docker 的 security-opt 、 CPU 时间等选项貌似是限制里面所有的进程的,而实际上我们需要一个父进程来控制子进程(子进程就是用户的代码),来获取运行时间、内存占用等数据。这会不会让父进程也太受限了?
Docker 和使用 seccomp 并没有任何冲突,而且我们现在也是在 Docker 中运行 judger 的,当然最主要是为了方便部署,其次才是使用 Docker 做一层隔离。
在使用 Docker 做判题方面,@wph95 更有经验,可以请教一下他。
@virusdefender
简单看了下 judger ,请教几个问题:
1. 直接使用 seccomp 限制系统调用,和使用 docker 的 secure option 限制本质上是否可以理解为是相同的?
2. 是什么原因当初没有选择 docker 呢?或者换一个问法, docker 在限制内存使用、 cpu 使用和运行时长、限制调用方面有什么缺点吗?
谢谢~
1. secomp -> seccomp
2. 讲道理来说 权限越高越好限制, PaaS 不会给你那么高的权限
3. hustoj 的 sae 版本只是一个 界面托管,评测还是要自己找服务器
4. 想简单的搭建 oj ? 土豪请选择 sphere-engine.com , 学校 or 学生团队 可以找 codevs 要免费的评测资源:)
感谢 @SCaffrey 的推荐
我们的 oj Web 部分暂时无法在 sae gae 类的 PaaS 上部署,限制太多了。
而沙箱保证安全依靠 PaaS 的话,好像也不太行,虽然 PaaS 也有沙箱,但是是隔离你的代码和底层环境的,你部署的代码已经是受限的了, sae 好像连进程都不能起, socket 也不行。更别谈调用编译器写文件了。
可以尝试一下 daoCloud 类的 docker PaaS ,限制还少一些。
我们是用的 secomp 过滤系统调用。代码在 https://github.com/QingdaoU/Judger