Я использую Groovy в качестве динамического обработчика сценариев, чтобы позволить администраторам моего веб-приложения создавать небольшие сценарии как часть решения интерфейса, например. выполнять простые строковые операции, разбивать токены и т. д.
К сожалению, это открывает довольно большую лазейку, потому что по умолчанию механизм скриптов будет выполнять что угодно.
Я описал демонстрационное приложение здесь: http://javadude.wordpress.com/2011/06/29/creating-a-zk-groovy-console/
Object value = shell.evaluate("whatever groovy script");
Вы можете выполнить System.exit(0)
, который отключит AS или даже команды оболочки, такие как "ls -l".execute().text
, или просто просмотреть системные настройки println InetAddress.localHost.hostAddress
Я мог бы выполнить проверку строки перед выполнением, например, фильтр для System.xyz
или execute.xyz
Есть опыт или рецепты?
Спасибо
Свен