Wha*_*rld 7 javascript java jython rhino nashorn
我正在扩展一个用Java编写的服务器应用程序,以允许运行用户定义的回调(用Javascript编写)以响应请求.我已经完成了一些阅读,虽然似乎可以在Nashorn中禁用Java类,但没有什么能阻止用户创建在不使用任何Java API的情况下分配庞大数组的Javascript代码.我想知道是否有任何方法可以主动或反应性地限制这一点.
我想出的解决方案是拥有一个具有较小最大堆大小的JVM进程池,它们负责运行用户定义的代码.将有一个工作池管理器在需要时生成新进程.这样,主进程以及其他用户定义的代码不会受到单个恶意用户的影响.虽然这种解决方案可能会起作用,但它似乎很苛刻.是否没有更好的解决方案来防止恶意用户使用太多内存?
我不是特别设置Javascript,所以如果存在可以在JVM中运行的任何其他脚本语言并且还支持内存使用限制,我将愿意使用它而不是Nashorn.不幸的是,似乎Jython,JRuby和LuaJava都没有我想要的东西.提前致谢.