Как запустить код на ВМ, ограничивая доступ ко всем глобальным переменным, кроме указанных - PullRequest
0 голосов
/ 31 декабря 2018

Если у меня есть какой-то код в строке, как я могу запустить его без предоставления каких-либо глобальных переменных.

Кажется, что модуль vm предоставляет встроенные функции:

const vm = require("vm");

vm.runInNewContext("console", {}); // No error, outputs an object
                                   // Expected it to error, since we are passing an empty context

Не дубликат этого вопроса , решение которого мне не подходит (в Node v10.5.0).

1 Ответ

0 голосов
/ 31 декабря 2018

Похоже, console оказывается исключением .

Если вы попробуете другие глобальные переменные, такие как require, process, __dirname, __filename,и т.д., все они вызовут ошибку.

...