匿名ユーザーにあらゆる種類のファイルをアップロードさせることは、特にコードの場合、危険である可能性があることを理解します。しかし、私はユーザーが自分のWebサイトにカスタムAIスクリプトをアップロードできるようにする考えがあります。私はPythonで書いたオンラインWebゲームで、他のAIと競合できるようにテンプレートを提供します。アップロードされたスクリプトやゲームのクライアント側実行のためのソリューションを使って、ユーザーが他のファイルを侵害したり悪意のあるコードを侵入したりしないようにするソリューションが必要です。助言がありますか? (私は私のPythonスクリプトで動作するソリューションを探しています)ユーザーに実行のためのPythonスクリプトをアップロードさせる
答えて
は、ユーザーのための豊富なAPIを持っており、(そのようなインポート文など)のアップロード時に他のすべてのコールを取り除きます。また、ファイルI/Oと関係のあるものは全て削除してください。
(あなたが何かを見逃していなかったことを確認するために、複数のパスをしたいかもしれません。)
'exec"、 "imp"、 "ort os"のいずれかのexecはありません。 –
はい。
あなたのサーバーではなく、クライアントのスクリプトを作成できるようにします。
Pythonを使用すると、pythonサンドボックスを作成できます。サンドボックスは、あなたがスクリプトを実行できる独立した、おそらく安全なPython環境です。詳細情報はこちら
http://codespeak.net/pypy/dist/pypy/doc/sandbox.html
「理論的にはそれは悪い何かを行うか、このプロンプトからマシン上のランダムなファイルを読み込むことは不可能です。」
は、「これはscript.pyは、それがHTTPサーバーによって行われ、例えば場合、いくつかのランダムな信頼できないソースから来ている場合でも行うことが安全です。」他のセーフガードと一緒に
、あなたはまた、コードの人のレビューを組み込むことができます。経験の一部が他のメンバーのソリューションをレビューし、誰もがPython開発者であると仮定すると、特定の数のメンバーがそれに投票するまで、新しいコードをアクティブにすることはできません。あなたのユーザーは悪質なコードを承認しません。
PyPyは、おそらくサーバー側ではうってつけの賭けですが、Pythonのバックエンドでよく定義されたAPIとデータ形式を提供し、ユーザーにAIとロジックをJavascriptで実装させるようにします彼らのブラウザ。インタラクションは次のようになります:各マッチ/ターン/ etcについて、データをブラウザに適切な形式で渡し、データを受け取り、ロジックを実装できるJavaScriptテンプレートを提供し、クライアントが呼び出せるWeb APIを提供します(ブラウザ)を使用して目的のアクションを実行します。そうすれば、セキュリティやサーバーのパワーを心配する必要はありません。
- 1. phpにpythonスクリプトを実行させるためのlinux apacheの権利
- 2. 複数のユーザーが同じスクリプトを実行するPythonスクリプト
- 3. アップロードされたcsvファイルのスクリプトをshinyで実行する
- 4. スクリプト実行中に渡されたカスタムタグの値に基づいてインスタンスをリストするためのPythonスクリプト
- 5. PHPを実行してPythonスクリプトを実行するためのHTMLフォームボタン
- 6. Pythonスクリプトを実行するためのベストプラクティスは何ですか?
- 7. Pythonスクリプトを実行するためのスケジューラー
- 8. 別の実行中のスクリプトから値を監視するためのPythonスクリプト
- 9. Pythonで複数のスクリプトを実行するためのスクリプトを書く
- 10. jenkinsにビルドを実行するpythonスクリプトを実行させる方法は?
- 11. ユーザーのためにdirを変更するPythonスクリプト
- 12. Pythonスクリプトの実行
- 13. Pythonスクリプトで作成されたKMLスクリプトの実行
- 14. 実行されているシートでスクリプトを実行するためのリンク
- 15. 他のスクリプトの実行時間を見るためのBashスクリプト
- 16. 指定されたフォルダでスクリプトを実行するためのクイックbashスクリプト?
- 17. コンパイル(ただし、実行されません)Pythonスクリプト
- 18. Pythonスクリプトで実行されているHerokuにアップロードされたテキストファイルにアクセスする方法
- 19. GUIウィンドウを持たないPythonスクリプトの実行を止めるには?
- 20. PythonスクリプトをFlaskに実行
- 21. スクリプトを実行するためのユーザー入力を受け取ります
- 22. Pythonスクリプトを実行する
- 23. リモートtmpディレクトリがスクリプト実行のために設定されていません
- 24. Python 3.5でPython 2.7スクリプトを実行する方法/ 2.7 Pythonスクリプトを実行するのに最適なオプション
- 25. スクリプトを実行するためにPython - 二重引用符を削除する "
- 26. 別のPythonスクリプトによって実行されるPythonスクリプトでパスが変更された
- 27. GIFアップロードの進行状況を背景にスクリプトを実行
- 28. 実行された変数をpythonスクリプトに保存します
- 29. C++に同時に埋め込まれたpythonスクリプトを実行する
- 30. 終了ユーザースクリプト - 複数のユーザーに対して実行する単一実行スクリプトを適応させますか?
あなたのプロジェクトはクールに聞こえます。 –
フィードバックありがとうございました皆さん – AlbertoPL
良いプロジェクト!!!! –