在这种情况下如何摆脱SQL注入

时间:2012-06-16 16:14:09

标签: ruby-on-rails-3 mongoid sql-injection

我的RoR 3应用程序中有这样的方法

  def buscar
    array = params[:query].split(' ')
    array.each_with_index  do |query, index|
      array[index] = array[index].gsub(/<\/?[^>]*>/, "").downcase
    end
    @noticias = Noticia.where(:tags.all => array).paginate(:page => params[:page])
  end

我正在使用brakeman来扫描任何问题,他说这是

Possible SQL injection near line 116: Noticia.where(:tags.all => (params[:query].split(" ")))

如何更改查询以驱逐此问题? 哦,我正在使用mongoid 提前致谢

1 个答案:

答案 0 :(得分:1)

这是未经测试的,但是像这样:

tag = params[:query].split(" ")
tag.each do |tag|
  @noticias << Noticias.find_by_tag(tag)
end
@noticias.paginate(:page => params[:page])

您可能不得不使用<<。我不确定@noticias对象中的paginate是什么样的。