これが初歩的な質問である場合は申し訳ありませんが、これをずっと正しく行ってきたかどうかを検討し始めたところです。通常、ユーザーがデータベースを更新しようとすると、そのユーザー名をユーザー テーブルのキーとして使用し、それに基づいてすべての操作を行います。しかし、狡猾なユーザーが別のユーザー名を使用してクエリを送信できる可能性があることに気付きました。これにより、資格を強制するこの弱い形式を回避できます。したがって、私の質問は、ユーザーが別のユーザー ID でデータベースに対して破壊的なアクションを潜在的に送信するのを防ぐにはどうすればよいかということです。
1 に答える
2
現在のユーザーの ID をセッションに保存する必要がありますが、これは簡単には操作できません。
私は通常、User オブジェクトのリレーションを通じてオブジェクトを参照します。
current_user.fragile_records.find(params[:id]).destroy
これは、所有権テストを行うための読みやすく簡単な方法です。
http://guides.rubyonrails.org/security.htmlは、この件に関する驚くほど良い読み物です。
Railsでは、ユーザー ID (認証) を維持し、ユーザーがアクション (承認) のクリアランスを確保できるようにするための既製のソリューションがたくさんあります。
于 2011-10-30T15:11:57.043 に答える