我使用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.xyz
或execute.xyz
任何经验或食谱?
感谢
斯文
答案 0 :(得分:4)
使用groovy 1.8,您可以自定义编译器配置
这里有一篇博文,解释了更多:
http://www.jroller.com/melix/entry/customizing_groovy_compilation_process