【问题标题】:How can I allow a final user to run scripts in a JEE environment under specific security constraints?如何允许最终用户在特定安全约束下在 JEE 环境中运行脚本?
【发布时间】:2013-12-03 17:17:16
【问题描述】:

我的 JEE 应用在 tomee 下运行,允许用户编写他/她自己的脚本并从 web gui 运行,但我想限制某些操作,例如 System.exit(1)。

可以在 beanshell2 论坛中找到与此问题相关的讨论 - 看看这个 - http://code.google.com/p/beanshell2/issues/detail?id=15

在 JVM 中工作的任何可编写脚本的语言都可以,但我需要这种级别的控制。我的第一次尝试是使用 beanshell,但从上面的讨论中可以看出,这似乎不是一种选择。

我想避免使用更多深奥的语言,因为最终用户是技术人员,但我不能要求他/她学习未知的编程语言只是为了编写脚本 :-) [或者我可以,如果我不这样做'找不到任何有用的选项]

我怎样才能得到它?时髦?可能还有其他基于 JVM 的脚本语言吗?

【问题讨论】:

    标签: java groovy beanshell securitymanager


    【解决方案1】:

    Groovy 在CompilerConfiguration 中具有强大的功能。您可以选择可用的进口商品和许多其他东西。可以使用SecureASTCustomizer 将允许的内容列入白名单或列入黑名单

    【讨论】:

    • 我还要看看 Groovy Sandbox 项目(因为 SecureASTCustomizer 可以是 a bit leaky
    • Groovy Sandbox 绝对是这里的最佳选择,而 Kohsuke 的默认许可证是 MIT,在我的具体情况下它比 beanshell (GPL) 更好。
    【解决方案2】:

    我很久以前就用过犀牛。它允许在 Java 应用程序(或服务器端)中运行 JavaScript。您可能需要手动管理安全问题。

    不确定这是您要查找的内容,但它可以提供帮助:https://developer.mozilla.org/en-US/docs/Rhino

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2016-07-18
    相关资源
    最近更新 更多