環境:
受信ファイルをサイトのアップロード ディレクトリに保存する PHP ファイル アップロード ハンドラを作成しました。アップロード ディレクトリは Web 経由で公開されており、現在、各ファイルは、データベースによって生成された一意の ID で名前が変更された後、そこに直接ダンプされます。ハンドラーは、画像だけでなく、JS と PHP 以外のすべてのファイル タイプを許可します。ファイルの数は最終的には数千になる可能性がありますが、それが実現するには数年かかります。
私の質問:
アップロードされたすべてのファイルをサーバー上の同じディレクトリに置くことは良い考えですか?
たとえば、ワードプレスはそれらを日付にちなんで名付けられたディレクトリに保存することに気付きました。
私が見ることができる唯一の本当の欠点はls
、そこに数千のファイルがあると、ディレクトリのリソースが大量に消費される可能性があることです。または、1 つのディレクトリ内のファイル数、または 1 つのディレクトリの合計サイズ (Linux を実行) に制限がありますか?
セキュリティに関する少し予防的なメモ:
アップロード ハンドラーは、ファイルをアップロードする管理者レベルのユーザーにログインしている以外は保護されています。また、PHP または JS ファイルも保存されません (少なくとも、配列type
内の属性を使用して確実にテストできる限り)。これらは実行される可能性があります。$_FILES
サーバーによって。私が実装する予定のもう 1 つのセーフガードは、.htaccess
念のため、特定のファイル タイプへの要求をブロックするファイルです。この側面に関するメモも歓迎しますが、この質問の一部ではありません。