我正在为模型构建一个自定义 where 子句,我想知道我这样做的方式是否是抵御 sql 注入攻击的安全方式。这是我的方法:
def self.search(search)
if search
conditions = []
conditions << [ 'name like ?', search[:name] ] unless search[:name].blank?
conditions << [ 'product_type_id = ?', search[:product_type_id] ] unless search[:product_type_id].blank?
conditions = ( conditions.empty? ? nil : [conditions.transpose.first.join(' and '), *conditions.transpose.last] )
where(conditions)
else
scoped
end
end
你怎么看?提前致谢!