shimgo
10/8/2016 - 9:28 AM

StrongParameters

StrongParameters

Mass Assignment(Hashを使ってモデルに一括で属性をセットすること)によってモデルを生成・更新すると、悪意のあるユーザがリクエストに任意のキーを追加して送ってくることで、意図しない属性の変更を許してしまう。
```
user = current_user
#params[:user] => {name: "bob", email:"hoge@ex.com"}
user.update(params[:user])
```
それを防ぐためにStrongParameterにより利用していいHashのキーを検査する
```
user = current_user
#params[:user] => {name: "bob", email:"hoge@ex.com"}
user.update(user_params)

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