@rail-ka
Программист.

Как работают сайты, позволяющие запускать код в playground (исполнение на их сервере)?

Как работают такие сайты, которые позволяют запускать код на их сервере?
На сайте некоторых новых языков программирования есть странички playground, где можно запускать свой код. Как они решают такие вопросы, например как "вредный" код? Написать код с бесконечным циклом с огромными вычислениями и отправить выполняться?
Например, я хочу сделать playground для javascript. Где его лучше запускать: в nodejs на сервере, в docker контейнере, может быть можно скомпилировать код с помощью LLVM?
Как установить ограничения на выполнение? Можно ли как то анализировать код?
Ещё хотел посмотреть как работают NoSQL базы данных с языком запросов на javascript, но думаю это немножко не то.
  • Вопрос задан
  • 429 просмотров
Пригласить эксперта
Ответы на вопрос 3
@antonecma
Nodejs backender
https://nodejs.org/api/vm.html и ограничение по времени исполнения
Ответ написан
Комментировать
@KFan
Веб-программист
ссылка (логин и пароль произвольный)

Проект написанный мною, принцип работы:

1. Код отправляется на сервер
2. На сервере крутится С++ демон, который проверяет бд на запросы компиляции
3. Демон находит запрос на компиляцию, передает его в следующий модуль
4. Модуль проводит компиляцию после чего изолирует себя, и выполняет программу (компилируемой программе доступны только системные библиотеки).

Так же для особо придирчивых (если таковые будут), доступны для чтения многие системные файлы (я защищался только от угрозы приченения реального вреда серверу, поэтому не заморачивался установкой прав на чтения на все файлы.
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
для javascript

но зачем? Единственный язык для которого не надо на сервере ничего запускать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы