0

私は過去4時間、railsのattr_accessibleを学習しようとしてきました(私は今、railsを学習しようとしている初心者です)。すべてのドキュメント/記事は、attr_accessibleが特定の属性が一括割り当てによって変更されるのを防ぐ方法に焦点を当てています。すばらしいですが、他のシナリオでデータベースを保護する方法をわざわざ説明する人は誰もいません。

たとえば、モデル作成のためにフォームが送信されたときに一括割り当てが発生すると想定しています。したがって、本のこの例では、routes.rbでこれを宣言します。

resources :users

RESTで簡単に作成/取得/更新/削除できるようにしました。一括割り当ては作成時に行われると想定しています。また、特定の属性にアクセスできないようにすることは理にかなっています。しかし、更新はどうですか?attr_accessibleは、単一の割り当てについては何も言いません。したがって、すべてのユーザーがPOST呼び出しを開始して、特定のフィールドを更新できます。私は何が欠けていますか?

4

2 に答える 2

1

http://guides.rubyonrails.org/security.html#mass-assignment

したがって、すべてのユーザーがPOST呼び出しを開始して、特定のフィールドを更新できます。私は何が欠けていますか?

CSRF保護を逃しました。

于 2012-08-26T22:42:29.477 に答える
0

何も欠けているようには見えません。最も一般的な例は次のとおりです。

誰が管理者で誰がそうでないかを制御する「タイプ」または「アクセス」列があり、それを保護していない場合は、CURL を使用して自分自身を完全な権限を持つ管理者として作成できます。

于 2012-08-26T22:45:24.283 に答える