Rails SQL注入?

Posted

技术标签:

【中文标题】Rails SQL注入?【英文标题】:Rails SQL injection? 【发布时间】:2011-02-27 01:59:09 【问题描述】:

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

Post.all(:conditions => ['title = ?', params[:title]])

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

Post.all(:conditions => "title = #params[:title]")

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

Post.all(:conditions => :title => params[:title])

【问题讨论】:

【参考方案1】:

是的,确实如此。只有第二个是危险的。

【讨论】:

感谢您的直接回复。【参考方案2】:

来自 RoR 指南的 good reference。

【讨论】:

【参考方案3】:

+1 @fphilipe 和 @yuval 查看来自 railscast 的 5 分钟视频和来自 rails guide 的这段视频

【讨论】:

谢谢,我已经看过了,但它没有涵盖我的问题(关于最后一次发现)

以上是关于Rails SQL注入?的主要内容,如果未能解决你的问题,请参考以下文章

以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?

在 Rails 中保护 SQL 注入

Rails Brakeman:Arel 的 SQL 注入

如何在 order rails 查询中修复 sql 注入

这个 Rails 3 搜索是不是容易受到 SQL 注入的攻击?

ruby on rails sql 注入 LIKE '%#argument% 易受攻击?