私は、ユーザーからのコード投稿を許可するように設計された共同プロジェクトを作成しています。ユーザーはクラスを拡張したり、機能を追加したり、コードをサーバーに送信して定期的に実行したりすることができます。サーバー上のユーザーのPHPスクリプトを安全に実行する
ユーザーのPHPコードを安全に実行する方法はありますか?確実な消毒方法は?無限ループはどうですか?それとも別のスクリプト言語を提供するべきですか?ファイルにアクセスしたり変更するユーザーに対して確保
私は、ユーザーからのコード投稿を許可するように設計された共同プロジェクトを作成しています。ユーザーはクラスを拡張したり、機能を追加したり、コードをサーバーに送信して定期的に実行したりすることができます。サーバー上のユーザーのPHPスクリプトを安全に実行する
ユーザーのPHPコードを安全に実行する方法はありますか?確実な消毒方法は?無限ループはどうですか?それとも別のスクリプト言語を提供するべきですか?ファイルにアクセスしたり変更するユーザーに対して確保
Apacheのプロセス
をファイル へのアクセスを許可するのDocumentRoot
セーフモードONためJailRoot memmory 制限とmax_execution_timeにのための安全なphp.iniの設定を行います
そしてSaggiマラキが述べたように、これはあなたが例えば、サーバー上のアクションを監視する必要があるとフォールバックszenariosを持っている、非常に実験的です。 loadaverageがしきい値を超えていれば、平均負荷を監視しているcronジョブがapacheとsendmailを停止します。
他の良いアイデアは、あなた自身のPHPウントは、ユーザーによって「悪用」することができ、PHPの機能へのアクセスを拒否コンパイルすることです。
はsafemodeで行うことができます。無限ループに対して確保
は、PHPインタプリタがサイトを生成するために取得する時間のいくつかの量を設定する必要があります。 set_time_limit
はまた、それはスパム送信者として使用されるのを避けるために、外部のサーバと通信し、ユーザーを停止する必要があります。 allow_url_fopen
は、おそらく他のより深刻な問題がたくさんあります。これは簡単な作業ではありません。
たぶん私はSpiderMonkey
とそれははるかに安全な音の代わりに、サーバー側のJavaScriptを使用することができます!
これは、StackOverflowで質問することで処理しないでください。専門家を雇うか、大きなトラブルに陥るつもりです –
これは私が今夜友人やb33rと仕事をしているおもちゃプロジェクトです。私は雇われた専門家が感心するとは思わない:D –