私はそれらの中に信頼できないWSGI-appsを持つpython-projectsをたくさん持っています。私はそれらをsimulatiously安全に実行する必要があります。ですから、ディレクトリアクセス、Pythonモジュールの使用法、CPUとメモリの制限には制限が必要です。Python code jailing
は、私は2つのアプローチを検討:定義されたファイルからIMP-モジュールWSGI-オブジェクトを経由して
インポート、およびpysandboxでそれを実行しています。やったときに今、私は
SandboxError: Read only object
を持っている:self.config = SandboxConfig('stdout') self.sandbox = Sandbox(self.config) self.s = imp.get_suffixes() wsgi_obj = imp.load_module("run", open(path+"/run.py", "r"), path, self.s[2]).app … return self.sandbox.call(wsgi_obj, environ, start_response)
変更Pythonインタプリタ、ZMQ/Unixソケットを介して通信し、並列プロセスで実行し、潜在的に危険なモジュールを、除外する。私はここでどこから始めるべきかも知らない。
お勧めできますか?
プロセスの分離は間違いなく良いアイデアです。仮想化を使う方が良いでしょう。私はpysandboxについて知りませんが、Pythonコードをサンドボックス化する既存のソリューションはあまり良くありません。 –
CPythonでのサンドボックス化はあまり良くありませんが、他のPythonインタプリタ、特にPyPyではより完全なサンドボックス化のサポートがあります。 –
私はPyPyサンドボックスを試みました。それはあまりにも複雑です。 – sashab