首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现在线编译器

实现在线编译器
EN

Stack Overflow用户
提问于 2015-07-17 09:01:18
回答 1查看 579关注 0票数 1

我正在做一个小项目,就是托管一个类似于ideone.com的站点,ie托管一个在线编译器,它将编译并运行作为输入的代码,我使用ROR作为后端部分。

我所做的是将输入到textbox中的代码存储到字符串中,我使用ruby中的系统调用来创建一个文件,我将字符串存储在file.Similary中,我还将代码的输入存储在另一个file.Again中,我使用系统调用编译和运行文件,并将输出存储到字符串中,并将其发送到前端部分。

对于上述的实现方法,我有两个问题:( 1)它只适用于time.Any上的单个用户,想法是如何为多个用户实现,如果是的话,用户数量的限制是什么?( 2)任何人都可以放置恶意代码并危害系统,我必须对环境进行沙箱,使其能够在孤立的环境中运行。我该怎么做呢?

程序运行无穷大循环并不是一个问题,因为我已经限制了执行时间,我使用倒勾来执行shell脚本,我正在为C实现它,如果我成功地解决了所有的问题,我会把它扩展到其他语言。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-17 09:13:14

为了不让人们清除您的硬盘驱动器,安装垃圾邮件等,您将需要运行虚拟机内的所有代码,以保护主机。这也解决了用户问题,因为您可以为每个用户旋转一个虚拟机,并在运行代码后将其向下旋转。但是,这可能会占用服务器上的大量资源。

我想知道ideone.com是做什么的。我怀疑所有东西都在客户机的浏览器中运行,这显然要安全得多,因为您可以使用您的服务器来保存它们的代码,而不是实际运行它。如果它在他们的浏览器中运行,无论如何它都是沙箱。你确定你不想这样做吗?我从未听说过有人允许人们上传代码,然后在系统服务器上运行它。似乎有点疯狂的风险。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31472025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档