PHP делает относительно простым ограничение того, что пользователь может делать на сервере - просто поручите ему отключить функции с помощью директивы php.ini disable_functions. Есть ли аналогичная возможность в Node.js? Точка поиска в googling с более очевидными фразами оказалась пустой. Я предполагаю, что можно сделать что-то подобное, контролируя только то, что может входить в предложения. Однако, возможно, есть другой путь? Я был бы очень обязан всем, кто мог бы указать мне в правильном направлении.Securing Node.js
Судя по комментариям я должен прояснить этот вопрос
- Контекст - Я настраиваю сервис, который позволяет пользователям запускать свой собственный код узла в контейнере Докер. Контейнеры-докеры достаточно безопасны, но, как доказывает Докер, нет гарантии на чугун, что контейнер представляет собой Песочницу без какого-либо риска выброса из нее.
- В причине я хочу, чтобы позволить пользователям использовать внешние модули, использование которых объявлен в коде с использованием стандартного узла требуется («имя_модуля») Синтаксис
Теперь предположим, что я позволил этому случиться и палочки пользователя в
require('shelljs/global');
Boom ... Пользователь имеет возможность запускать команды оболочки. Итак, как я могу остановить это? Один из способов - сыграть полицейского и строго контролировать, какие внешние модули он может подключить таким образом. Другой - и, следовательно, мой вопрос - если есть стиль php.ini, просто блокирующий доступ к определенным capabilties .... Из моего понимания того, как работает Узел (и он еще несовершенен), это невозможно. Однако, учитывая, что я относительный новичок, я думал, что попрошу здесь и посмотрю, что те, кто понимает Узел, лучше, чем я должен сказать.
Код оценивается во время выполнения, любые изменения в файлах JavaScript не влияют на текущее запущенное приложение до его перезапуска. –
Вы имеете в виду, что вы, как администратор сервера, хотите ограничить возможности разработчиков или приложений на этом сервере в приложении node.js? –
@Kevin B - см. Мой перефразированный вопрос. Вкратце ответ на ваш комментарий: да. – DroidOS