2

さまざまなユーザーがカスタム php モジュールをアップロードできるシステムを構築しています。このシステムは、PHP で記述され、Linux にデプロイされたカスタム MVC フレームワークに基づいています。ユーザーがログインすると、ユーザーのモジュールがシステム コアによってロードされます。システム コアは、すべてのモジュール間で共有されます。

私の問題は、USER モジュールがコアをいじらないように制限する方法です。例えば。ファイルのリンク解除など。ファイルのアクセス許可でそれを防ぐことはできますか?

4

3 に答える 3

4

ユーザーがスクリプトをアップロードして実行することは非常に危険です。disable_functionSuhosinなどを使用してシステムを保護しても、大きなセキュリティ ホールが開く可能性があります。

ユーザーが PHP スクリプトをアップロードできるようにする代わりに、専用のテンプレート言語で構成されるテンプレートをアップロードできるようにすることをお勧めします。そのような言語は通常、ファイルのリンク解除などの機能にまったくアクセスできません。次に、ホワイトリストに登録することでテンプレート言語を開くことができます。これは、より安全なアプローチです。

Zeta Componets テンプレート エンジンは非常に拡張性が高く、テンプレートは PHP 開発者にとって直感的に記述できます。多分これはあなたのためのオプションですか?

于 2011-02-28T13:32:46.593 に答える
0

うまくいけば、システムの各ユーザーがサーバー上で異なるユーザー アカウントを持つことになります。そうしないと、お互いのデータを削除しないようにするのが非常に難しくなります。

私は、あなたがUNIXサーバーのフレーバーに取り組んでいると仮定します.

  • MVC システム コアを所有するユーザーを 1 人作成します。これは管理者ユーザーです。このユーザーを と呼びますmvc-admin
  • システム コアへのアクセスを許可するグループを作成します。g-mvc-accessこの回答では、このグループを呼び出します。
  • しておりますchown -R mvc-admin:g-mvc-access /path/to/mvc-system-root。これで、ファイルはすべて管理者ユーザーによって所有され、アクセス グループに属します
  • しておりますchmod -R g+r-w /path/to/mvc-system-root。これで、グループは MVC システム ルートの下にあるすべてのファイルを読み取ることができますが、書き込むことはできません。
  • すべてのユーザー アカウントをグループに追加しますg-mvc-access
于 2011-02-28T14:49:53.120 に答える
-1

「保護された」php を実行する 2 番目のサーバーにスクリプトをアップロードできます。

次に、 disable_functionsディレクティブで危険な機能を無効にします。

http://www.webhostgear.com/319.html

于 2011-02-28T13:16:24.977 に答える