【112日目】【1日20分のRailsチュートリアル】【第9章】Strong Parametersでadmin属性の変更をガードする
今日は「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アクション」から。