2009-05-04 8 views
12

匿名ユーザーにあらゆる種類のファイルをアップロードさせることは、特にコードの場合、危険である可能性があることを理解します。しかし、私はユーザーが自分のWebサイトにカスタムAIスクリプトをアップロードできるようにする考えがあります。私はPythonで書いたオンラインWebゲームで、他のAIと競合できるようにテンプレートを提供します。アップロードされたスクリプトやゲームのクライアント側実行のためのソリューションを使って、ユーザーが他のファイルを侵害したり悪意のあるコードを侵入したりしないようにするソリューションが必要です。助言がありますか? (私は私のPythonスクリプトで動作するソリューションを探しています)ユーザーに実行のためのPythonスクリプトをアップロードさせる

+1

あなたのプロジェクトはクールに聞こえます。 –

+0

フィードバックありがとうございました皆さん – AlbertoPL

+0

良いプロジェクト!!!! –

答えて

0

は、ユーザーのための豊富なAPIを持っており、(そのようなインポート文など)のアップロード時に他のすべてのコールを取り除きます。また、ファイルI/Oと関係のあるものは全て削除してください。

(あなたが何かを見逃していなかったことを確認するために、複数のパスをしたいかもしれません。)

+1

'exec"、 "imp"、 "ort os"のいずれかのexecはありません。 –

3

はい。

あなたのサーバーではなく、クライアントのスクリプトを作成できるようにします。

8

私はこのサイトに関連付けられない方法で午前、それはあなたが後になっているものを達成しようとするので、私はそれをリンクしています:pythonの投獄。サイトはcode padです。

についてのページによると、それはgeordiで実行されていましたし、ptraceを持つすべてのsysコールをトラップされます。 chrootされているだけでなく、アウトバウンド接続を許可しないファイアウォールを備えた仮想マシン上にあります。

は出発点考えてみましょうが、私は、全体の危険なものにチャイムする必要があります。 CYA自分自身を得てください。 :)

8

Pythonを使用すると、pythonサンドボックスを作成できます。サンドボックスは、あなたがスクリプトを実行できる独立した、おそらく安全なPython環境です。詳細情報はこちら

http://codespeak.net/pypy/dist/pypy/doc/sandbox.html

「理論的にはそれは悪い何かを行うか、このプロンプトからマシン上のランダムなファイルを読み込むことは不可能です。」

は、「これはscript.pyは、それがHTTPサーバーによって行われ、例えば場合、いくつかのランダムな信頼できないソースから来ている場合でも行うことが安全です。」他のセーフガードと一緒に

+0

誰もが実際にこれを使用しましたか?私がpypyを調べるたびに、常にそれが開発されています。 – Unknown

+0

私はそれを読んでいない。 – Dave

4

、あなたはまた、コードの人のレビューを組み込むことができます。経験の一部が他のメンバーのソリューションをレビューし、誰もがPython開発者であると仮定すると、特定の数のメンバーがそれに投票するまで、新しいコードをアクティブにすることはできません。あなたのユーザーは悪質なコードを承認しません。

1

PyPyは、おそらくサーバー側ではうってつけの賭けですが、Pythonのバックエンドでよく定義されたAPIとデータ形式を提供し、ユーザーにAIとロジックをJavascriptで実装させるようにします彼らのブラウザ。インタラクションは次のようになります:各マッチ/ターン/ etcについて、データをブラウザに適切な形式で渡し、データを受け取り、ロジックを実装できるJavaScriptテンプレートを提供し、クライアントが呼び出せるWeb APIを提供します(ブラウザ)を使用して目的のアクションを実行します。そうすれば、セキュリティやサーバーのパワーを心配する必要はありません。

関連する問題