保护不受信任的Java代码

时间:2014-03-11 16:27:27

标签: java security

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

我的第一个想法是编译它 - 运行它但是当我想到它时... ding ding安全性。我如何限制特定代码执行运行的调用,例如:它可以执行基本的java jazz(for loops等等)访问像Math这样的重要类,并从我的服务器访问一些方法,但没有它可以伤害或做任何坏事到服务器。

1 个答案:

答案 0 :(得分:0)

运行上传的代码时,您需要在运行时定义策略。来自Oracle关于Default Policy Implementation and Policy File Syntax的文档:

  

在运行时指定其他策略文件

     

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

java -Djava.security.manager -Djava.security.policy=someURL SomeApp
     

其中someURL是指定策略文件位置的URL,除了安全属性文件中指定的所有策略文件外,还将加载指定的策略文件。

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

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

我希望这有帮助!