如何以安全的方式使用 NashornSandbox

How to use NashornSandbox in safe way

提问人:MIX 2000 提问时间:11/10/2023 最后编辑:MIX 2000 更新时间:11/10/2023 访问量:15

问:

我正在使用以下代码来执行语句


NashornSandbox sandbox = NashornSandboxes.create();

         String input = "(20>=10 && 19<=20 || 33>30 ) &&  233>30";
          try {
                // Evaluate the logical expression
                Object result = sandbox.eval(input);

                if (result instanceof Boolean) {
                    boolean booleanResult = (boolean) result;
                    System.out.println("Result: " + booleanResult);
                } else {
                    System.out.println("Invalid expression: Result is not a boolean");
                }
            } catch (ScriptException e) {
                System.out.println("Invalid expression: " + e.getMessage());
            }

如何只允许执行逻辑表达式并防止 while、for、exist 和其他一切。

Java 安全性 Nashorn

评论


答: 暂无答案