Я знаю, что это technically a duplicate question, но я считаю, что это действительно так, поскольку исходный вопрос был отправлен 7 лет назад, и с тех пор Python/web security прошла долгий путь.Позволяет пользователям выполнять код на Python на
Я хотел бы создать веб-приложение, которое позволяет пользователям вводить код python (через пакет редактора Ace), а затем выполнять его в браузере с помощью интерпретатора python на сервере. Я не могу использовать pypy.js, потому что мне нужно использовать numpy, pandas и matplotlib. По сути, я хотел бы создать свою собственную Codecademy (я учитель и хотел бы создавать курсы, подобные Codecademy, для моих учеников). К сожалению, созданная вещь, которую Codecademy назвала в какой-то момент, ни к чему не привела.
Я использую Flask, но я мог бы изучить Django, если бы это было проще.
Каков наилучший способ позволить моим пользователям запускать код python, не позволяя им влиять на остальную часть программы или обращаться к файлам за пределами того, что им разрешено?
Итак, в чем ваш вопрос? Удостоверьтесь, что он не слишком широк! –
Предоставление любому пользователю возможности выполнять код - это риск безопасности, даже если вы им доверяете. Я бы предположил, что CodeAcademy запускает каждого пользователя в миниатюрной виртуальной машине (или что-то в этом роде), чтобы они не могли нанести вред первичной системе. –
Возможно, вам не нужны накладные расходы VM, если вы используете изолированный от хост-системы процесс (я думаю, это то, что Rushy называл «чем-то подобным»), т.е. docker вместо VM, в конечном итоге с обязательным контролем доступа, если вы не доверяете своим ученикам. – jpic