gpt4 book ai didi

java - 防弹 groovy 脚本嵌入

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:27 28 4
gpt4 key购买 nike

我正在开发一个可以通过用户提供的 Groovy 脚本扩展的服务器应用程序。很明显,我想确保这些脚本在一个非常紧凑的沙箱中运行,在沙箱中它们不会破坏核心应用程序代码或消耗太多资源而使服务器过载。

我研究了各种可能性,最终的解决方案可能是这些的组合:

  • 在非常受限的安全管理器中运行脚本。该脚本在无权限的 SecurityManager 中运行。必须声明其他权限(如 Android)。

  • 启动一个新的 JVM。在 Runtime.exec 周围创建一个 ScriptProcess 包装器,并生成一个带有安全管理器、有限堆等的新 JVM。因为我们启动了一个成熟的进程,我们可能会更好地控制监控不良行为?虽然资源成本会非常高...另一种方法是在此处使用 Ant,但它是否具有可扩展性?

  • Java Monitor API 在 Java 6 中有一个具有监控能力的包。我们可以监视线程并可能检测无限循环和内存消耗。有人用过吗?

这些就是我今天想到的。确保这些脚本正确运行并仍保持一定可伸缩性和性能的最佳方法是什么?

最佳答案

另一种可能性是在运行嵌入式脚本的 GroovyShell 上使用 Groovy 1.8 编译定制器。您可以预先导入类和方法,限制 Groovy AST 的使用,并预先应用 AST 转换,例如@ThreadInterrupt、@TimedInterrupt 或@ConditionalInterrupt。详细信息:

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

关于java - 防弹 groovy 脚本嵌入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6210045/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com