breakmanのunscoped findについて

Brakeman: Unscoped Find

Unscoped findとは、Direct Object Referenceの一種 ここで言っているのは、他のモデルに属しているモデルは範囲の指定されたqueryを介してアクセスされるべきということ。

例えば、AccountがUserモデルに属している場合 Account.find(params[:id]) このようにAccountを直接呼び出すと、攻撃者が意図しないアカウントにアクセスできる可能性がある。 current_user = User.find(session[:user_id]) current_user.accounts.find(params[:id]) こんな感じで、ログインしているユーザーに限定して呼び出さないといけない

しかし、これは偽陽性が多いので、場合を見て判断する。