ストロングパラメーターとは?
ストロングパラメーターとは何でしょうか?
「ストロング」と言う英単語から強い何か??ってことが予想できますが、ストロングパラメーターとは
簡単に「web上で流れてきた不正なデータを受け取らない」ように設定する機能のことです。
データーベースの更新の際、不要な情報を避けて安全に更新してくれます。
コントローラーアクションに実装
ストロングパラメーターが使用される部分は主にユーザー新規登録やユーザーログイン時などです。
実装場所はコントローラーアクションになります。
users_controller.rb
private
def user_params
params.require(:user).permit(:name, :email)
end
requireとpermitとはそれぞれ「必要とする」と「許可する」と言う意味です。
上記の場合、userはnameとemail情報のみ許可するけど、上記以外の例えばpassword情報は
許可せずブロックするよって意味です。
OK:userはnameとemail情報は許可します。
NG:userは上記以外の情報は許可しません。(passwordなど)
実装しないとエラーになる
ストロングパラメーターはRails4から追加されました。それ以前はMassAssignmentを使用してましたが
脆弱性があったためストロングパラメーターになったと言うことです。
もし、ストロングパラメーターが実装していなければ、不正な値でも何でもかんでも受け入れてしまい
管理者情報が乗っ取られてしまう危険があるのです。
ストロングパラメーターを実装し、危険を回避しましょう!
今回はここまでにします。