Rails阻止SQL注入

时间:2014-09-17 12:14:39

标签: ruby-on-rails

我担心我的解决方案不会很安全。我正在使用Rails 4.1.6

目前我使用:

@x = params[:myquery]
Monkey.where("monkeys_name LIKE ?", "%#{@x}%") 

我想阻止SQL注入。如何在@x中发现恶意内容?有助手吗?或者Rails有什么东西阻止它在引擎盖下?

谢谢!

1 个答案:

答案 0 :(得分:3)

在Rails安全指南中,它说

  

您可以传递一个字符串,而不是将字符串传递给conditions选项   数组来消毒受污染的字符串。

Monkey.where("monkeys_name LIKE ?", "%#{@x}%") 

因此,默认情况下,您的字符串将被清理,在这种情况下,Rails将为您完成繁重的工作。

您可以在此阅读详细指南,特别是7.2.4是您要找的。

http://edgeguides.rubyonrails.org/security.html#sql-injection