如何在节点的沙盒环境中执行用户提交的javascript代码
How to execute user submitted javascript code in sandbox environment in node?
所以我要做的是将javascript代码作为用户的输入,并将结果返回给他。现在我正在执行用户提交的代码,仅使用 eval (有一些安全检查)。但我知道这是非常不可靠的。所以我想要实现的是安全地在沙盒环境中运行它并将结果返回给用户。例如
输入:
var a =[1,2,3];
a.map(n => n*2);
输出:
[2,4,6]
我尝试在节点中使用 vm,但我真的不明白如何从中获得最终结果。
我尝试在节点中使用 vm,但我真的不明白如何从中获得最终结果。
许多vm
模块函数,如 vm.runInNewContext()
,将返回字符串中最后一个语句的结果,类似于 eval()
。
var vm = require('vm');
var script = 'var a = [1, 2, 3]; a.map(n => n * 2);';
var sandbox = {};
var result = vm.runInNewContext(script, sandbox);
console.log(sandbox); // { a: [1, 2, 3] }
console.log(result); // [2, 4, 6]
描述中给出了捕获结果的示例vm.runInThisContext()
相关文章:
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- NumericTextBox-当用户键入数字时执行JS计算.能做到吗
- dust.js是随机用户上传的模板,可以安全地在服务器端执行
- 如何执行被用户屏蔽的外部JS文件'adblockers
- 如何停止javascript的执行并允许用户保存表单
- 如何区分用户单击链接和在 UIWebView 中执行自动重定向的页面
- 如何在节点的沙盒环境中执行用户提交的javascript代码
- 当用户点击一个按钮5次时,如何执行警报
- 使用下划线_.delay,我如何停止未来的执行并提供用户状态
- 如何在Java应用程序中阻止XSS攻击并防止用户在网页上执行JavaScript
- 如何在对用户控件执行操作后调用 Web 服务
- 功能检测(不是用户代理嗅探)以执行浏览器检测
- 使函数在用户悬停在链接上 2 秒后执行
- 当用户导航到特定部分时执行功能(地理位置)
- 有没有办法显示/使用用户输入来执行各种功能,例如创建表
- 如何在一定时间后执行操作(因用户而异)
- 当用户在 html 文件中选择某些文本时执行 JavaScript 函数
- 当用户单击浏览器操作并出现弹出窗口(Chrome 扩展程序)时,如何执行操作
- 防止恶意用户执行JavaScript