2

Rails 3.2.xでは、ユーザーモデルでこれを行うことができます。

attr_accessible :email

また、次のコードは、コマンドラインから実行するとMassAssignmentSecurityエラーを発生させます(password_reset_sent_atにアクセスできないため)。

User.new(password_reset_sent_at: Time.zone.now)

ただし、strong_parametersに切り替えると、上記のコードはエラーを発生させることなく実行されます。

railsは、この種のコマンドライン入力を信頼できるものとして扱うと思います。これは、開発者からのみ取得できるためです。これは安全だと考えるべきですか?攻撃者は、コマンドラインアクセス権を持っている場合にのみ、上記のようなコードを送信できると思いますか?少し混乱しているので、ここ数日は多くのことを取ります。

4

1 に答える 1

2

攻撃者がコマンドラインセキュリティを介してRailsアプリにアクセスした場合、とにかくセキュリティが完全に失われ、データベース内のデータを悪意を持って変更する可能性が十分にあるため、間違いなく安全であると考えることができます。

gemを使用するstrong_parametersと、これを行うのに最適な場所であるコントローラーで一括割り当てを制御できるという利点があります。その目標の1つは、コンソールやモデルテストなど、保護が必要ないときに大量割り当ての問題に悩まされるのを防ぐことです。

于 2013-03-08T23:22:30.550 に答える