1

私はRailsの初心者で、現在MichaelHartlのRails3チュートリアルを読んでいて、本当に興味がある質問があり
ます。「フェイカー」を介して管理者ユーザーと他の99人の通常のユーザーを作成するという文脈で、Hartlはなぜそうなるのかを説明します。ユーザーモデルのattr_accessibleに「:admin」を追加して、「faker」テストコードの初期化ハッシュに「admin:true」を追加することはお勧めできません。代わりに、「toggle!(:admin)」を使用し、アクセス可能な属性に「:admin」を追加しないようにする必要があると説明しています。そうしないと、悪意のあるユーザーが「PUT / users / 17?admin=1」のようなPUTリクエストを直接送信する可能性があります。 http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#sec:revisiting_attr_accessible

したがって、Hartlのアドバイスに従って、私の管理ブール値は安全になりましたが、アクセス可能な属性として定義されている名前、電子メールなどの他のユーザー属性についてはどうでしょうか。これは、悪意のあるユーザーが上記のようなPUTリクエストを介してこれらの属性を簡単に変更できることを意味しますか?チュートリアルでは、Hartlは、このようなPUTリクエストフォームを発行できるcurlという名前のコマンドラインツールについて説明しています。サンプルアプリでこれを試してみたいとは思いません。質問は、何かを見落としているのか、それとも「put / users / 17?name='new_name'」などの悪意のあるPUTリクエストが発生する可能性があるのか​​ということです。

誰かが私の質問に答えてくれるなら、事前に感謝します!

4

1 に答える 1

2

はい、PUTを介して変更できますが、一般的にはそれが必要です。現在のユーザーがユーザーにこれらのフィールドを設定するためのアクセス権を持っているかどうかを確認する必要があります。

管理フラグなどは、一括割り当てではなく明示的に設定できるようにするため、特殊なケースです。ユーザーが自分自身を管理者として設定できるようにしたくはありませんが、ユーザーに自分のメールアドレスや名前などを変更してもらうことは問題ありません。

于 2012-05-18T23:39:07.267 に答える