Заключение кода Python в тюрьму

У меня есть куча проектов Python с ненадежными WSGI-приложениями внутри них. Мне нужно запускать их одновременно и безопасно. Поэтому мне нужны ограничения на доступ к каталогам, использование модуля Python и ограничения для ЦП и памяти.

Я рассматриваю два подхода:

  1. Импорт через imp-модуль WSGI-объекта из определенного файла и запуск его с помощью pysandbox. Теперь у меня SandboxError: объект только для чтения при выполнении:

    self.config = SandboxConfig('stdout')
    self.sandbox = Песочница (self.config)
    self.s = imp.get_suffixes()
    wsgi_obj = imp.load_module("run", open(path+"/run.py", "r"), path, self.s[2]).app
    …
    вернуть self.sandbox.call(wsgi_obj, environ, start_response)
    
  2. Изменить интерпретатор Python, исключить потенциально опасные модули, запускать параллельные процессы, обмениваться данными через сокеты ZMQ/Unix. Я даже не знаю, с чего начать здесь.

Что вы могли бы порекомендовать?

8
задан sashab 14 May 2012 в 17:16
поделиться