Jython:如何限制对eval()的访问?

时间:2019-04-05 14:55:10

标签: java python eval jython sandbox

我不是python / jython专家,所以我可能缺少一些明显的东西->为此感到抱歉。

在我的应用中,我希望用户使用python和JSR233运行jython脚本:

ScriptEngine engine = scriptEngineManager.getEngineByName 'python'
CompiledScript action = ((Compilable)engine).compile script
action.eval()
...
def res = action.engine.invokeFunction 'action', arg1, arg2

该脚本是一个具有2个参数的函数,应该对集合执行原始操作,不能访问文件,不能访问Internet等。

因此,我想让用户import非常基本的模块,例如recollections,并禁止所有其他模块,包括可怕的eval()exec()函数

在不阅读整个互联网的情况下实现沙箱的最简单方法是什么(我已经做了什么)?

0 个答案:

没有答案