Untrusted Groovy Script Security в Java

Мы пытаемся предоставить элементы для сценариев в «корпоративном» продукте. Мы хотели бы использовать groovy, но у нас возникают трудности с защитой самых простых вещей.

Например, мы хотели бы, чтобы клиент не мог просто уйти.

Class.forName("my.company.internal.SecruityTools").runAsAwesome(...)

Мы установили диспетчер безопасности с политикой, разрешающей только accessDeclaredMembers, и перезаписали checkPackageAccessметод и разрешать только пакеты из белого списка. К сожалению, цепочка classLoader по умолчанию просто обходит это и загружает класс любым способом.

Казалось бы, это довольно распространенная / обсуждаемая проблема, но я не могу найти библиотеку или хотя бы хороший пост в блоге о том, как заблокировать ненадежные скрипты в контексте гораздо большего приложения.

Кто-нибудь сделал это успешно? Я пропустил некоторые довольно очевидные посты/концепции? Есть ли уже надежная библиотека для этого? Возможно Groovy.tinFoilHatMode(true)?

15
задан Steve Skrla 19 April 2012 в 00:06
поделиться