0

私は ROR チュートリアルに関する M. Hartl の本を読んでおり、本がユーザーを見つけるために使用するユーザーの編集および更新アクションのためにそこにあり、"@user = User.find(params[:id])"認証目的で"correct_user"@user が現在のユーザーであるかどうかを確認するメソッドを追加しています。私を困惑させているのは"@user = current_user"、編集および更新アクションで使用を開始するユーザーを見つけることができないので、ユーザーが URL を介して他のユーザー ID を渡すことを心配する必要がないことです。私が考えているこのアプローチは、セキュリティの抜け穴を残していますか? 私はDeviseを使用しているので、すでにcurrent_user便利な方法があります。

4

1 に答える 1

1

このアプローチの潜在的な問題の 1 つは、特別な権限 (管理者、モデレーターなど) を持つユーザーが、更新を許可されている別のユーザーを編集しようとしている可能性があることです。データベースからのフェッチに固執するのが最善です。また、Rails が現在のリクエスト サイクルで既にユーザーを取得している場合、オブジェクトをキャッシュする必要があるため、実際には 2 番目のデータベース リクエストを行うべきではありません。

于 2013-01-01T08:50:10.547 に答える