在线Java编译器和运行器



我正在为一个简单的基于云的应用程序设计一个架构,该应用程序可以编译和运行Java程序。

我计划通过 SOAP 公开服务,客户端可以通过这些服务向服务器提供源代码。服务器将使用日志消息(如编译失败等)或成功消息进行响应。基本上是控制台输出。

问题

  1. 从体系结构的角度来看,我应该注意哪些安全注意事项,正确的方法是什么?

  2. 在代码编译之前,我应该进行哪些其他验证,您认为在云中实现此验证时还需要注意哪些其他事项?

  3. 是否有任何开源 API 可能已经处理了上述问题?


我遇到了javax.tools.JavaCompiler和其他应该完成这项工作的实用程序。

代码编译并不太危险,因为唯一正在运行的程序是编译器。您应该担心的是他们编译的Java程序的实际运行。

如果您还没有,请查看SecurityManager。基本上,您需要创建自己的类扩展SecurityManager,然后覆盖所有这些方法。如果程序不应该做某事,你就会抛出一个SecurityException。这几乎是在Java中沙盒化最简单的方法。一旦你这样做了,你只需打电话给System.setSecurityManager(mySecurityManager);

最新更新