rails find_by sql注入

src*_*ulo 4 ruby sql sql-injection ruby-on-rails

所以我知道Rails在使用时有助于防止sql注入:

Object.find(:first, :conditions=>["name=?",name])
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法找到自动生成的find_by和find_all_by方法是否保护了再次sql注入.

即:

Object.find_by_name(name)
Run Code Online (Sandbox Code Playgroud)

所以这两个调用具有完全相同的结果.我的问题是,即使第二个更方便,我应该继续使用第一个,因为它提供防止SQL注入,或第二个也这样做吗?

Ser*_*sev 8

是的,基于动态属性的查找程序(find_by_*系列)可以保护您的应用程序免受sql注入.