我使用 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
最佳答案
关于java - 如何使用 JSR 223 保护脚本安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622259/