如何使用JSR 223保护脚本?

时间:2011-07-08 09:06:41

标签: java security groovy scriptengine jsr223

我使用Groovy作为动态脚本引擎,允许我的Web应用程序的管理员用户创建小脚本作为接口解决方案的一部分,例如。做简单的字符串操作,标记化等 不幸的是,这会打开一个很大的漏洞,因为默认情况下脚本引擎会执行任何操作 我在这里描述了一个演示应用程序:http://javadude.wordpress.com/2011/06/29/creating-a-zk-groovy-console/

Object value = shell.evaluate("whatever groovy script");

您可以执行System.exit(0)关闭AS甚至shell命令,例如"ls -l".execute().text或只是窥探系统设置println InetAddress.localHost.hostAddress

我可以在执行前进行字符串检查,例如过滤System.xyzexecute.xyz

任何经验或食谱?

感谢
斯文

1 个答案:

答案 0 :(得分:4)

使用groovy 1.8,您可以自定义编译器配置

这里有一篇博文,解释了更多:

http://www.jroller.com/melix/entry/customizing_groovy_compilation_process