1

私はコントローラーを持っていますが、Rails がすでにパラメーターを解析して SQL インジェクションを防止しているかどうか疑問に思っています。私のコントローラーは次のようになります。

class V1::JobsController < ApplicationController
  include ActionController::HttpAuthentication::Token::ControllerMethods
  include ActionController::Serialization
  before_action :set_job, only: [:show, :update, :destroy]
  before_action :authorize_api_key, only: [:create]

  # GET /jobs
  def index
    status = (params[:status]) ? params[:status] : 'pending'
    @jobs = Job.where(publisher_id: params[:publisher_id], status: status)

    render json: @jobs
  end

  ...
end

このままでは安全ですか?

4

1 に答える 1

1

はい、あなたのコードは安全です。

たとえば、次のようなものは使用しないでください。

Project.where("name = '#{params[:name]}'")  # DON'T USE

詳細については

于 2016-01-09T21:11:55.773 に答える