java 支持动态执行 groovy 脚本的一些问题

本贴最后更新于 2645 天前,其中的信息可能已经时移世异

背景

  • 可实时按需要编写 groovy 脚本来做到动态扩展计算能力

问题

  • groovy 脚本中去做一些危险不应该被开放的事情,比如: 删表

测试可能性

  • 危险操作
package org.eddy;

/**
 * Created by eddy on 16/12/30.
 */
public class DBOp {

    public static void print() {
        System.out.println("drop a table");
    }
}
  • 脚本
import org.eddy.DBOp
DBOp.print()
  • 执行
    @Test
    public void test() {
        Binding binding = new Binding();
        GroovyShell shell = new GroovyShell(binding);
        shell.evaluate("import org.eddy.DBOp\n" +
                "DBOp.print()");
    }
  • 输出
drop a table

需求

  • 隔离 groovy 脚本运行环境。求助该怎么做。
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3165 引用 • 8206 回帖 • 1 关注
  • Groovy
    8 引用 • 7 回帖
  • 安全

    安全永远都不是一个小问题。

    189 引用 • 813 回帖 • 2 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • eddy
    作者

    @V 该怎么做呢

  • V

    你来做 ~

  • eddy 1
    作者

    不纠结,改用 javascript 来扩展计算能力了。