Rails - 这样安全吗?使用URL参数查询数据库?

AnA*_*ice 5 ruby-on-rails ruby-on-rails-3

Rails是否会自动防止执行以下操作的漏洞:

给出一个URL:http://a.com/?id = 3131313131313

然后在rails控制器中

@comment = Comment.find(params[:id])
Run Code Online (Sandbox Code Playgroud)

Rails是否自动保护,或者我是否需要进行某种类型的验证以保护应用免受黑客攻击?

谢谢

Mar*_*rth 6

ActiveRecord find总会.to_i用来防止所有SQL注入魔法.

Rails也会在这样的查询中自动转义:

Comment.where(["id = ?", params[:id]])
Run Code Online (Sandbox Code Playgroud)

不是

Comment.where("id = #{params[:id]}")
Run Code Online (Sandbox Code Playgroud)