LINUX.ORG.RU

Безопасное окружение для проверки решений


0

0

Задача следующая: необходимо проверять решения задач приходящие от пользователей. Необходимо чтобы в программе была полная свобода действий в коде, однако нельзя допускать риск нарушения работы сервера проверок. Как лучше реализовать такое --- ведь это реализовано на многих сайтах, например на http://codegolf.com/.

Первое что лезет в голову - виртуальная машина.

anonymous

Re: Безопасное окружение для проверки решений

ИМХО, оно не зря лезет. 
Тот самый вариант :)

anonymous ()

Re: Безопасное окружение для проверки решений

или chroot, но это геморней

alex_custov ★★★★★ ()

Re: Безопасное окружение для проверки решений

> Необходимо чтобы в программе была полная свобода действий в коде

зависит от того что входит в свободу действий. Возможно просто достаточно создавать юзера для задачи, установить квоты, ulimit. Если задача сможет сломать систему, то будет повод послать багрепорт на ядро

dilmah ★★★★★ ()

Re: Безопасное окружение для проверки решений

> Если задача сможет сломать систему, то будет повод послать багрепорт на ядро

Сорри за оффтоп, не смог удержаться. :) Дом тоже не стоит запирать на замок, будет повод обратиться в милицию.

outdoor_profanity ()

Re: Безопасное окружение для проверки решений

>Правильно, кому надо замок не помешает.

неправильно. Иногда, тот кому не надо видит, что замка нет, и ему становится сразу надо.

anonymous ()

Re: Безопасное окружение для проверки решений

Возможно может подойти:
www.ejudge.ru

eXire ★★ ()

Re: Безопасное окружение для проверки решений

Грузить через LD_PRELOAD кастрированные версии системных вызовов. Хотя это ещё тот изврат...

gaa ★★ ()

Re: Безопасное окружение для проверки решений

Странно, почему никто не вспомнил про виртуализацию?!

annoynimous ★★★★★ ()

Re: Безопасное окружение для проверки решений

Я использовал UML, когда решал аналогичную задачу. Пока никто не сломал (хотя вроде и не пытался), программами типа while(1){fork(); malloc(1);} система не валится. Проверку лучше делать в несколько потоков, иначе получается очень медленно.

kmeaw ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.