2011-06-25 7 views
1

私はサーバー上でユーザーがpythonスクリプトを送信するシステムを設計しています。このスクリプトは、ホワイトリストに載っているモジュールだけにアクセスすることを意図しています。"import"や "eval"を使わずにPythonでモジュールをインポートすることはできますか?

このようなシステムを安全に実装する1つの方法は、すべてのモジュールを削除し、「インポート」の基本的なメカニズムをオーバーライドして、選択したモジュールのみをインポートできるようにすることです(here)。しかし、このアプローチは、私の仕事の多くを必要とするでしょう。

もう1つのアプローチは、スクリプトを事前処理し、キーワード "import"と "eval"キーワードの有無を確認することです。これらのキーワードが存在する場合、スクリプトは実行されず、アラームはオフになります。しかし、それでもモジュールをインポートして悪意のあるものを実行できる他の方法はありますか?

+0

これは可能ですが、非常に困難です。何かを逃すのは簡単でしょう。 – katrielalex

答えて

2

このスレッドを読む: Letting users upload Python scripts for execution

+0

特にpypyとjsに関するビットを除いて、その中のすべてを無視してください。それらの人々は不安なことを勧めました。 –

関連する問題