безопасное выполнение ненадежного кода Python на сервере

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

Я прочитал эту статью, в которой объясняются проблемные аспекты каждого подхода — например, песочница pypl, докер и т. д.

Я могу определить входные данные, необходимые коду, и выходные данные, и могу поместить их все в каталог, для меня важно, чтобы этот код не мог повредить мою файловую систему и создать диск, память, переполнение процессора ( Мне нужно иметь возможность устанавливать тайм-ауты и предотвращать доступ к файлам, которые ему не посвящены)

Какова лучшая практика здесь? Докер? Кубернетес? Есть ли для этого модуль python?

Спасибо.


person thebeancounter    schedule 07.02.2019    source источник
comment
предполагая работу в Linux, как насчет сочетания chroot, cpulimit и т. д.?   -  person Eric Wong    schedule 08.02.2019
comment
Я не пробовал, не могли бы вы опубликовать ответ, объясняющий использование и почему это работает?   -  person thebeancounter    schedule 10.02.2019
comment
я их тоже не использовал: «Я только знаю, что существует какая-то команда, которая будет полезна для вашего случая, и нашел только имя их команды …   -  person Eric Wong    schedule 10.02.2019


Ответы (1)


У вас может быть док-контейнер Python с монтированием тома. Volume mount будет каталогом в локальной системе для кода, который также будет доступен в вашем док-контейнере. Делая это, вы изолируете предоставленный пользователем код только для контейнера, когда он запускается. Сканируйте контейнер python с помощью эталонного теста CIS для большей безопасности

person Pankaj Moolrajani    schedule 18.06.2019