Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按用户运行给定的程序_Java_Web Applications_Compiler Construction_Assembly_Byte - Fatal编程技术网

Java 按用户运行给定的程序

Java 按用户运行给定的程序,java,web-applications,compiler-construction,assembly,byte,Java,Web Applications,Compiler Construction,Assembly,Byte,在这个答案中,有人可以找到许多允许用户在线编写和运行程序的网站(如)。我对制作类似的东西很感兴趣(不过只针对Java代码),我想知道如何才能做到这一点 一个简单的想法是获取用户给定的代码,将其发送到服务器,编译它,运行它,然后将输出返回给用户。但是如果用户有恶意代码,比如删除我的服务器文件等,该怎么办。?如果我想为C编程语言创建同样的东西,我想我可以只获取C文件的汇编代码,查看正在使用的系统调用,并确定给定的代码是否恶意。基于前面的想法,我应该看看Java,程序创建的字节码吗?有更好/更简单的方

在这个答案中,有人可以找到许多允许用户在线编写和运行程序的网站(如)。我对制作类似的东西很感兴趣(不过只针对Java代码),我想知道如何才能做到这一点


一个简单的想法是获取用户给定的代码,将其发送到服务器,编译它,运行它,然后将输出返回给用户。但是如果用户有恶意代码,比如删除我的服务器文件等,该怎么办。?如果我想为C编程语言创建同样的东西,我想我可以只获取C文件的汇编代码,查看正在使用的系统调用,并确定给定的代码是否恶意。基于前面的想法,我应该看看Java,程序创建的字节码吗?有更好/更简单的方法吗

不要重新发明轮子,Java有限制潜在恶意代码的机制

参考

  • 世界银行

    • 不要重新发明轮子,Java有限制潜在恶意代码的机制

      参考

      • 世界银行

      除了肖恩·帕特里克·弗洛伊德(Sean Patrick Floyd)在回答中所说的之外,您还可以在操作系统上对流程本身进行沙箱处理,作为一项附加措施。在主机(执行代码的机器)上创建一个新用户,并为其分配很少的权限(只分配运行代码所需的权限)。以该用户的身份运行该进程


      这样,不管有没有安全管理器,生成的进程都不会造成任何损害。

      除了Sean Patrick Floyd在回答中所说的,您还可以在操作系统上对进程本身进行沙箱处理,作为一项附加措施。在主机(执行代码的机器)上创建一个新用户,并为其分配很少的权限(只分配运行代码所需的权限)。以该用户的身份运行该进程

      这样,不管存在什么SecurityManager,生成的进程都不会造成任何损害