Java中不受信任的Groovy脚本安全性

Ste*_*rla 15 java groovy

我们试图在"企业"产品中提供可编写脚本的元素.我们想使用groovy但我们很难获得非常基本的东西.

例如,我们希望阻止客户简单地前进

Class.forName("my.company.internal.SecruityTools").runAsAwesome(...)
Run Code Online (Sandbox Code Playgroud)

我们安装了一个安全管理器,其策略只允许accesDeclaredMembers并覆盖该checkPackageAccess方法,并且只允许列出白名单的软件包.不幸的是,默认的classLoader链似乎绕过了这个,并加载了这个类.

这似乎是一个相当普遍/讨论的问题,但我不能为我的生活找到一个库,甚至是一个关于如何在更大的应用程序的上下文中锁定不受信任的脚本的好博客文章.

有没有人成功地完成了这项工作?我错过了一些相当明显的帖子/概念吗?是否已有一个坚实的库?也许Groovy.tinFoilHatMode(true)

Tri*_*tan 7

看看Groovy Sandbox.你可以用它来阻止System.exit(0)或者像new File(“/etc/passwd”).