即使在安全的上下文中,将插值字符串插入到SQL查询中也不好吗?

时间:2014-06-12 03:41:20

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

我知道字符串插值可以让你接受SQL注入,所以你永远不想做这样的事情:

user_input = params[:event_type]
Event.where("event.type = #{user_input}")

但是为了代码可读性,在非用户输入上下文中使用插值呢?像这样:

class City
  has_many :events

  def important_events
    big = "event.type = 1"
    vip = "organizer.status > 10"

    events.joins(:organizers)
          .where("#{big} OR #{vip}")
  end
end

这是个坏主意吗?有没有更好的方法呢?

0 个答案:

没有答案