PHPでユーザがアップロードしたページを安全に実行する方法はありますか?

私はファイル(PHPサイト/アプリケーション)を特定のディレクトリにアップロードし、そこのWebサーバ内で実行したいと思います。しかし、シンプルなshell_exec呼び出しは重大な結果を引き起こす可能性があります。

私が考えることができるすべてのことは、public_htmlの外側にpagesディレクトリを設定し、そのページを実行しているユーザーに外部の権限がないようにアクセス許可を自動的に設定することです。

私が今までに見つけた他の平凡な解決策は、非常に安全ではない解決策に見える runkit_sandbox です。特に放棄されたように見えます。

本当に方法はありますか?完全なシェルアクセス(シェルスクリプト)でさえも?

1
あなたがアップローダを信頼しない場合、これはかなり悪い考えです。
追加された 著者 ceejayoz,
私はよく理解していません。なぜ、あなたのユーザーにあなたのサーバー上でスクリプトを実行させる必要がありますか?それとも、PHPアプリケーションを配備させたいだけですか?
追加された 著者 Sacx,

3 答え

いいえ。ユーザーがアップロードしたコードが関与することができる悪質な行為は事実上無制限です。その多くは正当な行為とよく似ています(例えば、メールの送信とスパムの送信、外部APIへのアクセス、DDoSの犯行、エクスプロイトの実行とファイルの管理とすべての削除)一般に、これを行うための "缶詰"な方法はなく、PHPではまったく存在しません。

2
追加された
1
追加された

open_basedirを使用して、ユーザーを特定のフォルダに制限します。この方法では、所有権でファイルを実行できますが、フォルダ以外のものは表示できません。

詳細はこちらをご覧ください:

http://www.randombugs.com/php/apache -dynamic-virtual-hosting-php-security.html

http://www.php.net/manual/en /ini.core.php#ini.open-basedir

0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com