6

Python での「サンドボックス」環境の実装は、以前は rexec モジュール ( http://docs.python.org/library/rexec.html ) で行われていました。残念ながら、いくつかのセキュリティ上の脆弱性のために非推奨/削除されました。代替手段はありますか?

私の目標は、Python コードに半信頼の Python スクリプトを実行させることです。完璧な世界では、事前定義されたセット以外の関数を呼び出すと、例外が発生します。rexec の非推奨について読んだところによると、これは不可能かもしれません。なので、出来るだけ我慢します。スクリプトを実行する別のプロセスを生成できるので、非常に役立ちます。ただし、I/O またはプロセッサ/メモリ リソースを悪用する可能性はあります。

4

3 に答える 3

4

__import__「I/O またはプロセッサ/メモリ リソースを乱用する」と思われるモジュールが含まれないように、独自のものを提供することをお勧めします。

pypyから始めて、リソースの使用に制限と制約がある独自のインタープリターを作成することをお勧めします。

于 2009-02-08T03:18:33.950 に答える
2

セキュリティ上の理由からのcpythonの「サンドボックス化」は、 「あなたの会社の子供たちにそれをしないでくださいということです。

試す :

  • Java「サンドボックス」を使用したjython
  • pypy -> Answer S.Lott を参照
  • おそらくironpythonには解決策がありますか?

警告を参照してください:

警告

Python 2.3 では、これらのモジュールは、さまざまな既知の簡単に修正できないセキュリティ ホールのために無効になっています。rexec および Bastion モジュールを使用する古いコードを読むのに役立つように、モジュールは引き続きここに文書化されています。

于 2009-02-08T09:51:57.230 に答える