2012-06-05 4 views
0

Я пытаюсь создать сайт, на котором люди могут запускать там загруженный код. Что-то вроде SPOJ/ACM. Как я могу убедиться, что код не повредит мою систему (ограничение доступа к сокетам, системные вызовы)Безопасное выполнение в Ruby

Я рассмотрю множество решений в сети, некоторые из предложенных chroot, но я не понимаю. Также это требует конфигурации, это можно сделать с помощью конфигурации и т. Д.

Примечание. Я не прошу указать какой-либо конкретный язык, выполняемый в исполняемом файле.

Моя установка для разработки - это MAC и Linux для хостинга, было бы неплохо, если бы решение могло работать на обоих. Не требуется.

ответ

0

Посмотрите RubyCop

RubyCop сканирует код на Ruby и говорит вам, является ли это безопасно или нет. Мы используем его в CodeSchool для проверки кода, представленного пользователем, прежде чем мы его оценим на сервере.

+0

Это очень специфично только для рубинового кода. Что делать, если вы хотите, чтобы исполняемый файл выполнялся безопасно. –

0

Пожалуйста, проверьте рубин встроенный tainted механизм

+0

Это очень специфично только для рубинового кода. Что делать, если вы хотите, чтобы исполняемый файл выполнялся безопасно. –

1

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

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

Смежные вопросы