0
0

【Rails】Strong Parametersとは

Posted at

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を使用することで、リクエストからの不正なパラメータの送信を防ぎ、セキュリティを強化することができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0