如何正确保护rails控制器中的SQL注入

时间:2016-01-09 20:27:33

标签: ruby-on-rails rails-api ruby-on-rails-5

我有一个控制器,我想知道Rails是否已经解析了params并且阻止了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

这样安全吗?

1 个答案:

答案 0 :(得分:1)

是的,您的代码是安全的。

例如,不要使用这样的东西:

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

For more information