Обработка Javascript с ненадежного исходного сервера

Цель состоит в том, чтобы создать систему в PHP, которая позволяет пользователю отправлять строку, применяет функцию javascript к этой строке, а затем возвращает значение строки после ее обработки функцией javascript. На сайте есть много других функций, написанных на PHP, так что это не меняется. Однако, если необходимо, я могу использовать другие стеки для выполнения этого компонента проекта (node.js, Java и т. Д.).

Кто-нибудь есть идеи, как это сделать с помощью следующих ограничений:

  1. Функция, которая обрабатывает введенное пользователем значение, должна быть JavaScript
    1. Обработка функции JavaScript должна быть на стороне сервера
    2. Функция javascript не должна иметь доступа к файловой системе (загрузка файлов, сохранение файлов и т. Д.) Или к каким-либо видам ввода-вывода.
      функциональность
    3. Функция javascript не должна занимать больше определенного объема памяти (скажем, 5 МБ), но может быть определена (не
      обязательно во время выполнения, но настраивается где-то)
    4. Время выполнения функции javascript не может превышать определенного количества миллисекунд (скажем, 3000 мс), но может быть определено (не
      обязательно во время выполнения, но настраивается где-то)
    5. Система должна быть в состоянии вернуться, если произошла ошибка при обработке JavaScript
    6. Функция javascript не должна быть в состоянии выполнять вызовы каким-либо внешним службам (http-запросы и тому подобное). По сути, я хочу, чтобы система могла только выполнять код, который использует функциональность «на базе процессора», без подключения к каким-либо внешним источникам. Я помещаю это в кавычки, так как знаю, что на самом деле это не термин, но, надеюсь, это поможет прояснить ситуацию.

По сути, я пытаюсь создать систему, которая может обрабатывать функцию Javascript из ненадежного источника на стороне сервера и возвращать значение функции. Я искал какие-либо библиотеки или ссылки на тематические исследования для этого, но не нашел ничего идеального.

-1

Решение

Первое, что приходит на ум, — это Node.js, серверный JavaScript. Глядя вниз по этому маршруту, есть модуль Песочница, http://gf3.github.io/sandbox/.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]