此代码忽略超时并挂起进程:
'use strict'
const {VM} = require('vm2')
const vm = new VM({
timeout: 5000,
})
console.log('Runs')
vm.run('Promise.resolve(42).then(() => {while(true) {}})') // hangs the process
setImmediate(console.log, 'Will never run')
并且 Promise 不能轻易被禁用:#74。
自述文件.md
重要提示:超时对 NodeVM 无效,因此它不能免疫 while (true) {} 或类似的邪恶。
@awiebe除了,我使用的是VM
,而不是NodeVM
。
不幸的是,这是节点超时功能的另一个限制——它不适用于异步调用,即使它们在沙箱中运行。
此问题已自动标记为过时,因为它最近没有活动。 如果没有进一步的活动,它将被关闭。 感谢你的贡献。