1

ファイルアクセスの制限に対処するための最良の方法は何ですか?目標は、アップロードされた特定のファイルへのアクセスをその作成者のみに許可することです。

ファイルを/protected/ filesフォルダーに保存することにしましたが、これらのファイルを返すための最良の方法は何でしょうか。

  1. 考えられるアプローチの1つは、次のようなデータベースを作成することです id, user_id, name, path

    したがって、特定のuser_idを持つユーザーは、/ resource / name.jpg(ResourceControllerという名前の共通コントローラーを持つ)のようなリクエストを介して自分のファイルにアクセスできます。

  2. 2番目のアプローチは、id, name, pathResourcesControllerなしで保存することです。他の各コントローラー(ユーザーファイルにアクセスする必要がある)で、アクセス制御を実行するアクションを作成します。

    function actionMessageImage()
    {
      $message_id = $_GET['message_id'];
      $model = Message::model()->find( ... check user_id for access control)
    
      $file = File::model()->findByPk($model->file_id)
    
      // then make request such as $file->get(); that performs readFile()
    }
    
4

1 に答える 1

2

この場合、user_idを画像とともに保存するのが最適であり、データベースへの最小ヒット数があります。

于 2012-11-20T11:46:07.730 に答える