Rails SQL注入?

Yuv*_*rmi 31 security sql-injection ruby-on-rails

在Rails中,当我想通过用户找到给定的值并避免SQL注入(转义撇号等)时,我可以这样做:

Post.all(:conditions => ['title = ?', params[:title]])
Run Code Online (Sandbox Code Playgroud)

我知道这样做的一种不安全的方式(可能的SQL注入)是这样的:

Post.all(:conditions => "title = #{params[:title]}")
Run Code Online (Sandbox Code Playgroud)

我的问题是,以下方法是否会阻止SQL注入?

Post.all(:conditions => {:title => params[:title]})
Run Code Online (Sandbox Code Playgroud)

fph*_*ipe 39

是的,它确实.只有第二个是危险的.


edt*_*hix 8

RoR指南的一个很好的参考.


Moh*_*ain 5

1 @fphilipe和@yuval检查从该5分钟的视频railscast和这一个从导轨引导