node之vm2库,js沙盒环境
vm2
是一个 Node.js 模块,用于在一个隔离的沙箱环境中运行不信任的代码。以下是使用 vm2
创建沙箱并在其中运行代码的基本示例:
首先,安装 vm2
:
npm install vm2
然后,使用 vm2
创建沙箱并执行代码:
const { VM } = require('vm2');
// 创建一个新的沙箱
const vm = new VM({
timeout: 1000, // 设置代码执行的超时时间为1000毫秒
sandbox: { // 定义沙箱中的初始数据
secret: 'a secret code'
}
});
// 在沙箱中执行代码
const result = vm.run('secretFunction(secret)', 'myScript.vm2');
console.log(result); // 输出代码执行的结果
在这个例子中,我们创建了一个新的 VM
实例,并设置了一些选项,如超时和初始化的沙箱环境。然后,我们在这个沙箱中执行了一个简单的函数,它使用了一个秘密信息。这个函数的定义不是在沙箱外定义的,而是在沙箱内部定义的。这样可以提供一定程度的代码隔离。
评论已关闭