Node.js Песочница для запуска ненадежного пользовательского кода

Я пытаюсь найти изолированную программную среду node.js, способную запускать недоверенный пользовательский код.


Есть несколько постов по этому поводу, но все они старые. Я надеюсь, что актуальный пост поможет.
(2011) Как безопасно запускать пользовательские сценарии в песочнице node.js?
(2012) Как запустить сервер ненадежного кода?
(2013) Безопасная песочница и выполнение представленного пользователем JavaScript?


Посредством других постов и исследования этого я нашел следующие песочницы и эксплойты:
(Заключен в тюрьму) https://github.com/asvd/jailed
(Эксплойт в тюрьме) https://github.com/asvd/jailed/issues/33

(Песочница) https://github.com/gf3/sandbox
(Эксплойт с песочницей) https://github.com/gf3/sandbox/issues/50

(Сандкасл) https://github.com/bcoe/sandcastle
(Sandcastle Exploit) https://github.com/bcoe/sandcastle/issues/70

(Виртуальная машина узла) https://nodejs.org/api/vm.html
(В документации) Примечание. Модуль vm не является механизмом безопасности. Не используйте его для запуска ненадежного кода.

(VM2) https://github.com/patriksimek/vm2
(VM2 Exploit) https://github.com/patriksimek/vm2/issues/76


Кто-нибудь знает о песочнице node.js без известных эксплойтов?

1 ответ

Нам также были нужны библиотеки песочниц для nodejs, и доступный список почти такой же, как вы упомянули выше.

Среди тех, что мы выбрали (VM2) https://github.com/patriksimek/vm2, упомянутый вами эксплойт применим только в том случае, если context == host. Скорее вы можете установить контекст на "песочницу", которая обеспечит полную изоляцию, где вам нужно загрузить, потребовать и использовать модуль.

Вышеуказанная настройка очень хорошо работает для нас! Надеюсь, это поможет и вам!!

Другие вопросы по тегам