匿名ユーザーにあらゆる種類のファイルをアップロードさせることは、特にコードの場合、危険である可能性があることを理解します。しかし、私はユーザーが自分の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. jenkinsにビルドを実行するpythonスクリプトを実行させる方法は?
- 2. Pythonスクリプトの実行
- 3. Pythonスクリプトで作成されたKMLスクリプトの実行
- 4. コンパイル(ただし、実行されません)Pythonスクリプト
- 5. PythonスクリプトをFlaskに実行
- 6. GUIウィンドウを持たないPythonスクリプトの実行を止めるには?
- 7. 他のスクリプトの実行時間を見るためのBashスクリプト
- 8. 指定されたフォルダでスクリプトを実行するためのクイックbashスクリプト?
- 9. スクリプトを実行するためにPython - 二重引用符を削除する "
- 10. GIFアップロードの進行状況を背景にスクリプトを実行
- 11. Python CGIスクリプトが実行されない
- 12. CronでPythonスクリプトを実行
- 13. Travis CI pythonスクリプトを実行
- 14. WindowsでPythonスクリプトを実行
- 15. 私はPythonスクリプトからこのコマンドを実行したいのPythonスクリプトから
- 16. Jmeterでスクリプトが実行された場合にファイルがアップロードされない
- 17. pythonで実行するPythonスクリプト3.5
- 18. Linux:実行中のPythonスクリプトをsystemdですぐに削除させますか?
- 19. 別のPythonスクリプトからPythonスクリプトを実行し、返されたステータスコードを取得する方法は?
- 20. 実行中のPythonスクリプトを実行する
- 21. 最後に終了せずにpythonスクリプトを実行
- 22. Pythonスクリプトにbashコマンドを実行
- 23. Pythonスクリプトは.batファイル、タスクスケジューラ、またはcmdプロンプトから実行されません
- 24. ブーストをインストールするためのpythonスクリプト
- 25. サーバー上のユーザーのPHPスクリプトを安全に実行する
- 26. GeanyのMinicondaでPythonスクリプトを実行できません
- 27. AndroidでPythonスクリプトを実行する
- 28. TornadoウェブサーバでPythonスクリプトを実行する
- 29. JavaでPythonスクリプトを実行する
- 30. pythonスクリプトをオンラインで実行する(django)
あなたのプロジェクトはクールに聞こえます。 –
フィードバックありがとうございました皆さん – AlbertoPL
良いプロジェクト!!!! –