1

特定の (登録済みおよび精査済みの) ユーザーが、サンドボックス環境で実行する PHP コードを投稿したり、PHP ファイルをアップロードしたりできるようにすることを計画しています。

これがどれほど悪い考えに聞こえるか、そしてセキュリティ ホールを開く可能性があることは承知しています。

また、厳密で短い実行時間の設定、1 日あたりのスクリプトの最大実行数、非特権としての Web サーバー ユーザーの実行なども行う予定です。

php.ini で特定の関数の使用を禁止できることは承知していますが、すべての関数を (php.ini にすべての関数を配置せずに) 無効にすることができるかどうかを知りたいのですが、私が持っている特定の関数の使用を許可します。吟味され、許可しても安全だと思いますか?

4

1 に答える 1

2

最善の策は、許可したい機能をホワイトリストに登録できるSuhosin拡張機能を使用することです。

Suhosinのsuhosin.executor.func.whitelist構成オプションを参照してください。

suhosin.executor.func.whitelist

呼び出すことができる関数のコンマ区切りのホワイトリスト。ホワイトリストが空の場合、ブラックリストが評価されます。そうでない場合、ホワイトリストにない関数を呼び出すと、スクリプトが終了してログに記録されます。

于 2012-11-02T15:56:03.617 に答える