在这个问题的答案中,人们可以找到许多允许用户在线编写和运行程序的网站(如ideone)。我有兴趣制作类似的东西(尽管仅适用于 Java 代码),并且想知道如何做到这一点。
一个简单的想法是获取用户给定的代码,将其发送到服务器,编译,运行它,然后将输出发送回用户。但是如果用户有恶意代码,例如删除我的服务器文件等怎么办?如果我想为 C 编程语言创建相同的东西,我想我可以获取 C 文件的汇编代码,查看正在使用哪些系统调用,并确定给定的代码是否是恶意的。根据之前的想法,我应该在Java中查看程序创建的字节码吗?有没有更好/更简单的方法来做到这一点?
这样,无论 SecurityManager 是否存在,生成的进程都不会损害任何东西。