我的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 提前致谢
答案 0 :(得分:1)
这是未经测试的,但是像这样:
tag = params[:query].split(" ")
tag.each do |tag|
@noticias << Noticias.find_by_tag(tag)
end
@noticias.paginate(:page => params[:page])
您可能不得不使用<<
。我不确定@noticias对象中的paginate是什么样的。