Strong Parametersとは
Strong Parameters(ストロングパラメータ)は、Railsアプリケーションで安全にリクエストパラメータを扱うための仕組みです。これは、マスアサインメント脆弱性(Mass Assignment Vulnerability)を防ぐために導入されました。
マスアサインメント脆弱性は、フォームから送信されるパラメータを使用して、意図しない属性の更新や作成を許可する可能性があるセキュリティ上の問題です。Strong Parametersを使用することで、コントローラーで受け取ったリクエストパラメータから明示的に許可されたパラメータのみを取り出し、使用することができます。
Strong Parametersを使用するには、ストロングパラメータを許可するためのホワイトリストを定義する必要があります。通常、コントローラーのプライベートメソッド内でこれを行います。
使用方法
例えば、create
アクションでUser
モデルに対してパラメータを許可する場合は、以下のようにします。
class UsersController < ApplicationController
def create
@user = User.new(user_params)
if @user.save
# 保存が成功した場合の処理
else
# 保存が失敗した場合の処理
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end
end
上記の例では、user_params
メソッド内でparams.require(:user).permit(...)
という形式で、user
というキーのハッシュ内の特定のパラメータを許可しています。この場合、:name
、:email
、:password
、:password_confirmation
のみが許可され、他のパラメータは無視されます。
Strong Parametersを使用することで、リクエストからの不正なパラメータの送信を防ぎ、セキュリティを強化することができます。