Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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_Security - Fatal编程技术网

保护不受信任的java代码

保护不受信任的java代码,java,security,Java,Security,我有一个服务器应用程序,它接收从客户端上传的java代码,然后需要根据其中的方法调用进行处理 我的第一个想法是编译它-运行它,但当我想好了。。。丁丁保安。如何限制特定代码执行运行的调用,例如:它可以执行基本java jazz(for loops等)访问重要的类(如Math)和从我的服务器访问某些方法,但不会对服务器造成损害或造成任何不良影响。在运行上传的代码时,您需要在运行时定义策略。根据Oracle关于以下内容的文档: 在运行时指定附加策略文件 在调用应用程序的执行时,还可以指定附加的或不同的

我有一个服务器应用程序,它接收从客户端上传的java代码,然后需要根据其中的方法调用进行处理


我的第一个想法是编译它-运行它,但当我想好了。。。丁丁保安。如何限制特定代码执行运行的调用,例如:它可以执行基本java jazz(for loops等)访问重要的类(如Math)和从我的服务器访问某些方法,但不会对服务器造成损害或造成任何不良影响。

在运行上传的代码时,您需要在运行时定义策略。根据Oracle关于以下内容的文档:

在运行时指定附加策略文件

在调用应用程序的执行时,还可以指定附加的或不同的策略文件。这可以通过“-Djava.security.policy”命令行参数完成,该参数设置java.security.policy属性的值。例如,如果您使用

java -Djava.security.manager -Djava.security.policy=someURL SomeApp
如果someURL是指定策略文件位置的URL,则除了安全属性文件中指定的所有策略文件外,还将加载指定的策略文件

您可以在该策略中使用权限来限制代码可以执行的操作,例如:

permission java.io.FilePermission "/home/user/*", "read";

我希望这有帮助

创建一个Java沙盒,看看这里,我建议重新思考这个问题。