ぞえの技術めも

Ruby on Rails勉強中

【112日目】【1日20分のRailsチュートリアル】【第9章】Strong Parametersでadmin属性の変更をガードする

Ruby on Railsチュートリアル(第3版)

今日は「9.4.1 管理ユーザー」の「Strong Parameters、再び」から。

9.4.1 管理ユーザー

Strong Parameters、再び

任意のWebリクエストの初期化ハッシュをオブジェクトに渡せるとなると、攻撃者は以下のようなPATCHリクエストを送信してくるかもしれません。
patch /users/17?admin=1

リクエスト送られて改ざんできるのはやばいね。。。ガードしておかないと。

以下のようにparamsハッシュに対してrequireとpermitを呼び出します。

app/controllers/users_controller.rb

    def user_params
      params.require(:user).permit(:name, :email, :password,
                                   :password_confirmation)
    end

上記コードは7.3.2で追加済み。

上のコードでは、許可された属性リストにadminが含まれていないことに注目してください。これにより、任意のユーザーが自分自身にアプリケーションの管理者権限を与えることを防止できます。

許可された属性リストにadmin入れてたら変更できちゃうのか。
アプリケーションに登録した(悪意のある)任意のユーザーが自分自身に管理者権限を与えて好き放題する、ということを防げるんだね。

前の内容も読み返してたら時間かかった。

今日の学習時間は【18分】

次は「9.4.2 destroyアクション」から。