2009-08-07 13 views
5

私は、ユーザーからのコード投稿を許可するように設計された共同プロジェクトを作成しています。ユーザーはクラスを拡張したり、機能を追加したり、コードをサーバーに送信して定期的に実行したりすることができます。サーバー上のユーザーのPHPスクリプトを安全に実行する

ユーザーのPHPコードを安全に実行する方法はありますか?確実な消毒方法は?無限ループはどうですか?それとも別のスクリプト言語を提供するべきですか?ファイルにアクセスしたり変更するユーザーに対して確保

+3

これは、StackOverflowで質問することで処理しないでください。専門家を雇うか、大きなトラブルに陥るつもりです –

+0

これは私が今夜友人やb33rと仕事をしているおもちゃプロジェクトです。私は雇われた専門家が感心するとは思わない:D –

答えて

6
  • Apacheのプロセス

  • にシステムに
    リソースを制限するために、ユーザーごとのMPMを使用して、特定のディレクトリに

  • をファイル へのアクセスを許可するのDocumentRoot

  • セーフモードONためJailRoot memmory 制限とmax_execution_timeにのための安全なphp.iniの設定を行います

そしてSaggiマラキが述べたように、これはあなたが例えば、サーバー上のアクションを監視する必要があるとフォールバックszenariosを持っている、非常に実験的です。 loadaverageがしきい値を超えていれば、平均負荷を監視しているcronジョブがapacheとsendmailを停止します。

他の良いアイデアは、あなた自身のPHPウントは、ユーザーによって「悪用」することができ、PHPの機能へのアクセスを拒否コンパイルすることです。

0

safemodeで行うことができます。無限ループに対して確保

は、PHPインタプリタがサイトを生成するために取得する時間のいくつかの量を設定する必要があります。 set_time_limit

はまた、それはスパム送信者として使用されるのを避けるために、外部のサーバと通信し、ユーザーを停止する必要があります。 allow_url_fopen

は、おそらく他のより深刻な問題がたくさんあります。これは簡単な作業ではありません。

0

たぶん私はSpiderMonkey

とそれははるかに安全な音の代わりに、サーバー側のJavaScriptを使用することができます!

関連する問題