RAILS:Arel中用户输入的安全参数化

时间:2011-06-20 12:13:37

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

所以在有人打败我之前,我知道在调用Arel方法时如何做到这一点。我很好奇的是,如果有一种方法可以简单地获得用户输入的sql注入安全版本,所以我手头有它,可以用它做我想做的事。

理想情况下,我会对以下内容感兴趣:

safe_input_data = Person.sql_safe params[:user_data_for_arel_manipulation]

我昨晚花了一些时间寻找可以做到这一点但却一无所获的东西。我读了所有的ActiveRecord方法,但是文档中有杰克。简单地通过方法名称和那些方法的来源我没有看到任何东西。我希望有人知道某事。

1 个答案:

答案 0 :(得分:4)

这将为您提供一个sql安全字符串:

safe_input_data = Person.sanitize(params[:user_data_for_arel_manipulation])

请注意,它还会为您的字符串添加单引号!

因此"my unsafe input"变为"'my unsafe input'"