1

したがって、基本的に質問はタイトルともう少し詳細なシナリオにあります。

私はPHPで書かれたサイトのバックエンド(Linuxサーバー-centos 6)を持っていますが、実際にアクセスできるユーザーは2人だけです。何らかのフォームを介して画像をアップロードできる必要があります。だから、私は簡単なアップロードスクリプトを作成しましたが、何があっても(または知らないうちに:/)、アップロードは777に設定されたフォルダのアクセス許可でのみ機能します。したがって、私の質問はこれで問題ありません。この状況での一般的な慣行?

4

3 に答える 3

3

777のディレクトリ権限は必要ありません。必要なのは、ディレクトリがWebサーバーユーザーによって書き込み可能であることを確認することです。つまり、ディレクトリをWebサーバーユーザーが所有するか、グループがに設定された別のユーザーが所有するようにします。 Webサーバーのユーザーとグループに書き込み可能な権限。

したがって、www-dataたとえばWebサーバーユーザーが(他の一般的な可能性にはapache, httpd, www):

# Set ownership to the web server user
chown www-data uploads_dir
# and make it writable by the web server user
# could also be 755 (readable by others)
chmod 700 uploads_dir

または、アカウントユーザー(共有ホストなど)が所有し続ける必要がある場合は、グループをWebサーバーユーザーに設定します。

chown youruser:www-data uploads_dir
# and make it group-writable:
chmod 775 uploads_dir

肝心なのは、ディレクトリに777(誰でも書き込み可能)のアクセス許可を割り当てることは通常は良い考えではないということです。また、uploads_dir理想的にはWebサーバーのドキュメントルートの外部に配置して、HTTPリクエストで利用できないようにする必要があります。

于 2012-05-16T20:06:23.720 に答える
0

また、suphpのようなものを使用して、ユーザーとしてphpスクリプトを実行する一方で、他のユーザーまたはグループがフォルダーを書き込みできないようにする機能を保持することもできます。

ただし、これにはWebサーバーへの管理アクセスが必要です。

于 2012-05-16T20:08:50.127 に答える
0

解決策はFastCgiを使用することです。

これにより、同じユーザーとグループが所有する新しいファイルとディレクトリが作成されます。

FastCgiにはパフォーマンスの低下がありますが、phpを制限するため、セキュリティが強化されます。複数のユーザーがいる複数のウェブサイトをホストしている場合、これは良い考えかもしれません。

于 2012-10-11T20:03:56.977 に答える