私は、ユーザーが互いに戦うロボットを制御するための Python プログラムを作成できるゲームを作成しています。毎ターン (1000 ターンのゲームで) スクリプトがサーバー上で実行され、ロボットの次の動きが決定されます。これらのユーザーがサーバーに対して意地悪になるのを防ぐにはどうすればよいですか?
私は次のことを考え/研究しました:
eval
制限された環境でコードを実行する(つまり、__builtins__
無効にする)chroot
/のような OS 固有の jail を使用するptrace
- ある種の VM でコードを実行する
ユーザーのスクリプトを何千回も実行する Python プログラムがあります。最大合計時間を 1 分間に制限したり、メモリ リソースを制限したり、ファイルやネットワーク接続へのアクセスを禁止したりするにはどうすればよいでしょうか? 理想的なソリューションまたはソリューションの組み合わせは何ですか?