Dieser Code ignoriert das Timeout und hängt den Prozess auf:
'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')
Und Promise lässt sich nicht einfach deaktivieren: #74.
Readme.md
WICHTIG: Timeout ist für NodeVM nicht wirksam, daher ist es nicht immun gegen while (true) {} oder ähnliches Übel.
@awiebe außer, ich verwende VM
, nicht NodeVM
.
Leider ist dies eine weitere Einschränkung der Timeout-Funktion des Knotens – sie funktioniert nicht für asynchrone Aufrufe, selbst wenn sie in der Sandbox ausgeführt werden.
Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.