【发布时间】:2009-10-21 13:23:48
【问题描述】:
我正在开发一个 servlet(在 tomcat 上运行),它接收包含 Java 脚本代码的请求,并使用 java 脚本 API 框架评估/运行代码并将答案返回给用户。
由于我们正在处理用户生成的代码,因此代码可能是好代码,也可能是坏代码。作为错误代码的示例,可以是 while(true);这将在服务器中无休止地循环占用不必要的资源
我的问题
1) 我怎样才能发现错误的代码? 2) 一旦被识别为不良/恶意代码,停止运行的最佳方法是什么?
谢谢
【问题讨论】:
-
如何停止 java 脚本机制中的无限循环?导入 javax.script.*; public class EvalScript { public static void main(String[] args) throws Exception { // 创建脚本引擎管理器 ScriptEngineManager factory = new ScriptEngineManager(); // 创建一个 JavaScript 引擎 ScriptEngine engine = factory.getEngineByName("JavaScript"); // 评估来自 String 的 JavaScript 代码 engine.eval("while(true);"); } }
标签: java javascript scripting