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. Скорее вы можете установить контекст на "песочницу", которая обеспечит полную изоляцию, где вам нужно загрузить, потребовать и использовать модуль.
Вышеуказанная настройка очень хорошо работает для нас! Надеюсь, это поможет и вам!!