Как защитить скрипты с помощью JSR 223? - PullRequest
2 голосов
/ 08 июля 2011

Я использую 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

Есть опыт или рецепты?

Спасибо
Свен

1 Ответ

4 голосов
/ 08 июля 2011

В Groovy 1.8 вы можете настроить конфигурацию компилятора

Здесь есть пост в блоге, который объясняет больше:

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

...