我担心我的解决方案不会很安全。我正在使用Rails 4.1.6
目前我使用:
@x = params[:myquery]
Monkey.where("monkeys_name LIKE ?", "%#{@x}%")
我想阻止SQL注入。如何在@x中发现恶意内容?有助手吗?或者Rails有什么东西阻止它在引擎盖下?
谢谢!
答案 0 :(得分:3)
在Rails安全指南中,它说
您可以传递一个字符串,而不是将字符串传递给conditions选项 数组来消毒受污染的字符串。
Monkey.where("monkeys_name LIKE ?", "%#{@x}%")
因此,默认情况下,您的字符串将被清理,在这种情况下,Rails将为您完成繁重的工作。
您可以在此阅读详细指南,特别是7.2.4是您要找的。 p>
http://edgeguides.rubyonrails.org/security.html#sql-injection