サーバーでユーザー入力のPythonコードを実行する必要があるWebサービスに取り組んでいます(コードインジェクションのチェックがあります)。かなり大きなモジュールをインポートする必要があるので、Pythonを起動して、何かが実行されるたびにモジュールを最初からインポートしないようにします(約4〜6秒かかります)。
これを行うために、ユーザー入力コードをモジュールとしてインポートし、それを実行してから、そのモジュールを削除/ガベージコレクションするpython(3.2)デーモンを作成することを計画していました。このプロセスはサーバーが再起動されるまで続くため、そのモジュールがRAMから完全に削除されていることを確認する必要があります。私はこれがPythonで行うのは非常に難しいことだと言うたくさんのことを読みました。
これを行うための最良の方法は何ですか?execを使用してユーザー入力コード(変数スコープ用)で関数を定義してから、その関数を実行して、何らかの方法で関数を削除する方がよいでしょうか?それとも、私が見逃したこのプロセスを実行するためのより良い方法はありますか?