1

ユーザーがファイルをアップロードできる Web アプリケーションを開発しています。

audiodocsなど、異なるファイル カテゴリがあるとします。カテゴリに属する​​すべてのファイルを一意のフォルダーに入れることができると思います。たとえば、次のようになります。

audio_dir
  -file_from_user1.mp3
  -another_file_from_user1.mp3
  -file_from_user2.mp3
  -file_from_user4.mp3
docs_dir
  -file_from_user1.doc
  -file_from_user5.pdf

私が評価しているもう 1 つのソリューションでは、ファイルがユーザーごとにグループ化される第 3 レベルを使用しています。

audio_dir
  user1_dir
    -file_from_user1.mp3
  user2_dir
    -file_from_user2.mp3
  user4_dir
    -file_from_user4.mp3
docs_dir
  user1_dir
    -file_from_user1.doc
  user5_dir
    -file_from_user5.pdf

どのソリューションが最適ですか? サーバーセキュリティの脆弱性スケーラビリティに関心があることに注意してください。

4

1 に答える 1

1

セキュリティの観点から、Web ルートの外にファイルを保存する必要があります。これにより、誰かが、HTTPD の構成に基づいて実行される可能性のある実行可能なスクリプトをアップロード*.phpすることを効果的に回避できます。ディレクトリトラバーサル攻撃を防ぐために、ファイルを書き込む前にファイル名も渡します。*.pl*.py.htaccessbasename()

次に、PHP スクリプトにファイルを提供させることができます。SQL データベースに格納されているメタデータにファイルをマッピングすることで、ユーザー アクセス制御とファイル所有権を追加することもできます。

于 2012-08-30T06:49:30.537 に答える