1ストロングパラメーターとは?
ストロングパラメータとは、
ユーザーがビューで入力した特定の情報が、コントローラーへ送られて、それがパラメータとして安全に受け取らせるための仕組みをいう。
これは、ストロングパラメータにおいて、予め設定された情報以外は、コントローラーに受け取らせないというセキュリティ的役割を担っている。(MassAsignmentの脆弱性を突く攻撃に対処するための仕組みをいう。これは、
フォームが送信するparamsの内容を改ざんするなどして、開発者が意図していないデータをDBに保存させる攻撃のこと。)
ストロングパラメーターの編集する意味
これは、deviseというgemをインストールすることで、設定することができる。
その場合、ストロングパラメータの初期設定としては、メールアドレスとパスワードのみを受け取るようにストロングパラメーターが設定してある。
そのため、新しいキーをコントローラに受け取らせるためには、ストロングパラメーターを編集しなければならない。
2ストロングパラメーターの編集方法
ストロングパラメーターを編集方法としては、Railsのcontroller/application_controllerにおいて、before_actionにconfigure_permitted_parametersメソッドを設定する。
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:ストロングパラメーターを追加したいアクション名, keys: [:追加するキー])
end
end
たとえば、名前というキーをパラメーターを追加したい場合は、以下のように記述する。
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
以上