Форум сайта python.su
Всем привет)
Такая задача: исполняется пользовательский пайтон скрипт, и нужно строго ограничить его в возможностях. Как то: закрыть доступ в сеть, запретить писать/читать файлы, обращаться к базам данных, пользоваться потоками ввода-вывода, и тд. То есть пользовательскому скрипту, по сути, должны быть доступны только нужные для внутренних расчётов возможности (к примеру, математические), ну и сами возможности языка в плане гибкости и удобства. Также должна быть доступна библиотека с функциями апи, через которую скрипт и должен взаимодействовать с сервером, на котором выполняется.
Как это реализовать? А то гуглю уже два дня, но что-то ничего толкового не нашёл по этому поводу пока :(
Офлайн
Такие вещи надо делать на уровне администрирования ОС. Создать, к примеру, пользователя с нужными правами и запускать скрипт от его имени.
Ваш К.О.
Офлайн
А как, в таком случае, быть с апи-библиотекой? У неё-то должны быть права на работу с файлами/БД и тд.
Я вообще надеялся на существование способа запретить, скажем, использование конкретных функций/классов/библиотек.
Офлайн
Такие вещи делаются только на уровне ОС, и администрировать их можно только на этом же уровне.
Офлайн
Ferroman
не совсем согласен , можно выкинуть часть библиотек или библиотеки.
Sapphire
тут нужно смотреть для чего ты это спрашиваешь … если чисто теоретически то тут ответ “феромана” вполне годен
Офлайн
sypper-pit
Что не решит проблему, ибо есть ввод-вывод в файлы, память, да и ещё море лаезеек через которые можно повлиять на окружение.
Офлайн
да компы это вообще не надёжно :) толи дело лопата :)
Офлайн
Хм… Для чего конкретно: я хочу сделать виртуальную арену для сражений ботов. Как, например, Robocode. Можно бы создать собственный обработчик скриптов, но хочется дать юзеру широкие возможности, ООП и так далее. Писать обработку всех таких конструкций с нуля - не совсем то, чем я хотел заниматься. Вот и подумал, что нужно прикрутить имеющийся интепретатор, только как-то ограничить возможности. Выбрал именно пайтон из личной симпатии))
Офлайн
хм тогда проще создать виртуальную машину и настроить её под свои нужды кк предложил “фероман”
Офлайн
sypper-pit
Не понял юмора. При чём тут лопата?
То что просит топикстартер решается средствами администрирования ОС.
Другими способами этот вопрос не решается. Сделать это все под виртуалкой - отличная идея.
Офлайн