Java 按用户运行给定的程序
在这个答案中,有人可以找到许多允许用户在线编写和运行程序的网站(如)。我对制作类似的东西很感兴趣(不过只针对Java代码),我想知道如何才能做到这一点Java 按用户运行给定的程序,java,web-applications,compiler-construction,assembly,byte,Java,Web Applications,Compiler Construction,Assembly,Byte,在这个答案中,有人可以找到许多允许用户在线编写和运行程序的网站(如)。我对制作类似的东西很感兴趣(不过只针对Java代码),我想知道如何才能做到这一点 一个简单的想法是获取用户给定的代码,将其发送到服务器,编译它,运行它,然后将输出返回给用户。但是如果用户有恶意代码,比如删除我的服务器文件等,该怎么办。?如果我想为C编程语言创建同样的东西,我想我可以只获取C文件的汇编代码,查看正在使用的系统调用,并确定给定的代码是否恶意。基于前面的想法,我应该看看Java,程序创建的字节码吗?有更好/更简单的方
一个简单的想法是获取用户给定的代码,将其发送到服务器,编译它,运行它,然后将输出返回给用户。但是如果用户有恶意代码,比如删除我的服务器文件等,该怎么办。?如果我想为C编程语言创建同样的东西,我想我可以只获取C文件的汇编代码,查看正在使用的系统调用,并确定给定的代码是否恶意。基于前面的想法,我应该看看Java,程序创建的字节码吗?有更好/更简单的方法吗 不要重新发明轮子,Java有限制潜在恶意代码的机制 参考
- 世界银行
- 世界银行
- 不要重新发明轮子,Java有限制潜在恶意代码的机制
参考
这样,不管有没有安全管理器,生成的进程都不会造成任何损害。除了Sean Patrick Floyd在回答中所说的,您还可以在操作系统上对进程本身进行沙箱处理,作为一项附加措施。在主机(执行代码的机器)上创建一个新用户,并为其分配很少的权限(只分配运行代码所需的权限)。以该用户的身份运行该进程 这样,不管存在什么SecurityManager,生成的进程都不会造成任何损害