Java-安全执行JavaScript(ScriptEngine)

时间:2018-08-24 03:53:41

标签: java security scriptengine

我可以使用内置的ScriptEngineManager轻松地执行JavaScript。

但是,ScriptEngineManager授予了对JavaScript的完全许可,这对我来说是个大问题。

这是我要防止的事情:

javax.swing.JOptionPane.showMessageDialog(null, "Hello, Server!");
java.lang.System.exit(0);

如何在ScriptEngine JavaScript中禁用Java集成?

如果我这样做,是否可以仅包含特定的JavaScript函数回调?

1 个答案:

答案 0 :(得分:0)

默认情况下,沙箱会阻止对所有Java类的访问。

NashornSandbox sandbox = NashornSandboxes.create();
sandbox.allow(File.class);  
sandbox.eval("var File = Java.type('java.io.File'); File;")

delight-nashorn-sandbox