rails 技術ブログ

rails 技術ブログ

勉強したことをアウトプットしていきます

strong parameters

strong parametersとは

パラメータから受け取った値が安全かどうかを判断し、安全だと判断された場合のみデータを取得してくれる。


@user = User.new(params[:user])

例えばこのようにしてユーザ情報を取得しようとすると、悪意を持った人物から管理者権限を奪われてしまうこともあり得る。
(Userモデルにadmin属性があったとして、やろうと思えばadmin='1'という情報をparamsの中に紛れ込ませて送信することができてしまうため)

その時にstrong parametersを使うことが推奨されている。

使い方↓

params.require(:モデル名).permit(:カラム名)

モデル名カラム名以外の内容が送信されてきた場合は無効にすることができる。

具体的に使うとこんな感じ↓

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

Userモデルのname、email、password、confirmation以外の情報が送られてきた時は無効になる。