Есть некоторые серьезные недостатки для выполнения Python в песочнице. Ответ Aquavitae ссылается на хорошее обсуждение этого вопроса, особенно в этом блоге . Сначала прочтите это.
В cPython есть ядро безопасного исполнения. Основная идея состоит в том, чтобы заменить глобальный __builtins__
( Примечание: , а не модуль __builtin__
), который информирует Python о включении некоторых функций безопасности; сделать несколько атрибутов для некоторых объектов недоступными и удалить большинство объектов реализации из интерпретатора при эваляции этого бита кода.
Затем вам нужно будет написать реальную реализацию; таким образом, что защищенные модули не просочились в песочницу. Достаточно проверенная «файловая» замена предоставлена в связанном блоге. Взгляд на это может дать вам представление о том, насколько сложной и сложной является эта проблема.
Итак, теперь, когда вы поняли, что это вызов в python; вам следует взглянуть на языки с песочницей в качестве основной функции, например Lua , которая очень популярна в играх.