我们正在尝试在一款“企业级”产品中提供可编写脚本的元素。我们想使用Groovy语言,但是我们很难确保非常基础的安全性。
例如,我们希望防止客户简单地执行以下操作:
这似乎是一个相当普遍/讨论的问题,但我无论如何都找不到一个库,甚至是一篇关于如何在更大的应用程序上下文中锁定不受信任的脚本的好博客文章。
有人成功地做到了吗?我是否错过了一些非常明显的帖子/概念?是否已经存在一个可靠的库?也许是
例如,我们希望防止客户简单地执行以下操作:
Class.forName("my.company.internal.SecruityTools").runAsAwesome(...)
我们已经安装了一个安全管理器,该策略只允许accesDeclaredMembers
并覆盖了checkPackageAccess
方法,只允许白名单内的包。不幸的是,默认的类加载器链似乎可以绕过这个限制,任意加载类。这似乎是一个相当普遍/讨论的问题,但我无论如何都找不到一个库,甚至是一篇关于如何在更大的应用程序上下文中锁定不受信任的脚本的好博客文章。
有人成功地做到了吗?我是否错过了一些非常明显的帖子/概念?是否已经存在一个可靠的库?也许是
Groovy.tinFoilHatMode(true)
?