web-dev-qa-db-ja.com

PHPスクリプトでファイルを操作する必要がある場合、suPHPまたはDSO(mod_PHP)を使用する必要がありますか?

私は最近StackOverflowについて質問しましたが、ここで別の質問として、いくつかの変更と追加情報を付けて再度質問します。

ファイルやフォルダーを作成、移動、削除する機能を必要とするPHPスクリプトがたくさんあります。スクリプトは、FTP経由でWindowsマシンからアップロードされたファイルを移動および削除する必要もあります。

私のVPSは現在DSOを使用しているので、スクリプトを実行してパーミッションエラーで死なないようにするために、すべてのディレクトリとファイルを777にCHMODする必要がありました。

私が読んだところによると、777権限の使用は安全ではないため、実行すべきではありません。私はVPSを持っていますが、他の人が管理している多くのWebサイトをホストしているため、複数のユーザーがいます。

Phpinfo()を実行し、「PHPクレジット」のセクションで次のことを見つけたことに言及するのは適切かもしれません。

User/Group      nobody(99)/99 

私はphpとsuPHP対DSOを介したファイル操作の主題について読んでいますが、私はまだ何をすべきかわかりません。私が読んだところによると、suPHPに切り替えるとすべての問題が解決するようです(権限に関する問題はもうありません)が、サーバーの速度が大幅に低下することを読みました。

この件について誰かアドバイスをいただけますか?

2
Nate

私が読んだことから、suPHPに切り替えると私のすべての問題が解決するようです(パーミッションに関する問題はもうありません)

はい、suPHPは、CHMOD 0777がないnotであれば、すべてのパーミッション関連の問題を解決します-suPHPはこれを巨大なセキュリティホールとして拒否し、_error_log_最大で0755に変更するように指示するメッセージが表示されます。

それを考える最良の方法はこれです:

  • SuPHP = PHPは、家事手伝いをしている場合のように、「一般的な」ユーザーとして実行されます。家事手伝いに物をフェッチするように依頼すると、取得しますが、依頼すると、 特にあなたを必要とするもの(契約に署名する->ファイルに書き込む)そして彼らはそうすることができません。
  • suPHPを使用すると、家事手伝いを好きなだけ持つことができますが、それらはすべてあなたのふりをします。彼らはあなたができることすべてを、それ以上でもそれ以下でも行うことができます。問題はありません!

サーバーの速度が大幅に低下することを読みました。

どこ?私はこれが問題になることをまったく知りませんでした。

要約:suPHPに切り替えます。

2
Jay