Python web服务中的代码解释器
我想在客户端或服务器端构建一个带有沙盒的解释器(或编译器)的网站,该解释器(或编译器)可以将短代码块(python/java/c/c++任何通用语言都可以)作为输入并执行它 我想要建立的是一个地方,在那里,给定一个编程问题,用户可以输入解决方案,我们可以通过一些测试用例来运行它,或者批准解决方案,或者提供一个出现问题的测试用例 寻找指向库、现有实现或总体想法的指针。Python web服务中的代码解释器,python,web-applications,interpreter,Python,Web Applications,Interpreter,我想在客户端或服务器端构建一个带有沙盒的解释器(或编译器)的网站,该解释器(或编译器)可以将短代码块(python/java/c/c++任何通用语言都可以)作为输入并执行它 我想要建立的是一个地方,在那里,给定一个编程问题,用户可以输入解决方案,我们可以通过一些测试用例来运行它,或者批准解决方案,或者提供一个出现问题的测试用例 寻找指向库、现有实现或总体想法的指针。 非常感谢您的帮助。有许多竞赛网站都做了类似的事情——TopCoder和以下两个例子。然而,他们没有太多关于这项技术的信息 最接近你
非常感谢您的帮助。有许多竞赛网站都做了类似的事情——TopCoder和以下两个例子。然而,他们没有太多关于这项技术的信息 最接近你想要做的事情。他们在装有大量沙盒和防火墙的EC2服务器上运行程序,这些服务器会定期清除,以防止利用漏洞
CODEPad至少部分地基于一个IRC BOT,它运行任意的C++程序。它使用Haskell和陷阱系统调用来防止有害活动
谷歌应用程序引擎的一个示例项目是一个稍微不那么有趣的项目。它依靠GAE的服务器端沙箱来防止恶意活动在接口方面,最简单的方法是做一些类似国际信息学奥林匹克运动会的事情。让人们用目标语言编写具有特定名称的函数,然后从测试框架中调用该函数。如果需要,可以使用简单的函数从框架中请求信息。对于Python,您可以编译它,它为您提供完整的解释器和完整的标准库,但不能执行任意系统调用。您还可以限制已执行脚本的运行时和堆大小
我不久前写了一篇文章,在pypy沙盒二进制文件中执行包含Python脚本的任意字符串并返回输出。你可以从普通的CPython调用这段代码。看一看关于构建这样一个环境的文章。Chrome将支持本机客户端,尽管Firefox表示他们没有支持这种技术的计划。请阅读所有这些内容,然后更新你的问题:可能重复的