我正在使用rails 2.3.2
我有一个参数,其中我有一个表的字段名称。我想知道该字段是否存在于表中,以防止sql注入。
User.find(:all, :group => params[:group], :conditions => { :admin => false })
我想确保在实际执行上述查询之前,params [:group]是表中的一个字段。
找出给定字段是表的有效字段的方法是什么?
答案 0 :(得分:3)
您可以使用has_attribute?
:
user = User.new
user.has_attribute?(params[:group])
答案 1 :(得分:3)
对于您可以使用的实例:
user.has_attribute?(params[:group])
对于课程:
User.column_names.include?(params[:group])
但ActiveRecord的查询构建方法如:where
,group
,order
等,只要您不使用raw,就可以安全地防止SQL注入SQL查询。
我不担心。