我一直在尝试构建一个在线java编译器。但是在服务器上运行客户端代码会引发许多安全问题。
我能想到的很少 - 无限循环,限制访问API,限制内存使用等等。
1)借助政策工具,可以限制对API的访问。但是我如何检查内存和CPU使用情况(无限循环,......)?
2)策略工具提供了授予权限而不是限制的选项。那么,如果我选择“运行时权限”和getStacktrace作为目标,那么所有其他人都将被限制?
答案 0 :(得分:1)
您可以使用Ideone API。您对免费帐户有一定的限制,但它减轻了您处理安全的负担。
它可以作为web服务使用,它的WSDL可以在这里找到:ideone.com/api/1/service.wsdl
答案 1 :(得分:-1)
一个想法是在单独的线程上运行代码。如果在最大允许时间内没有完成,则杀死该线程。