首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在访问oracle视图/函数时,Rails Brakeman SQL注入警告

在访问oracle视图/函数时,Rails Brakeman SQL注入警告
EN

Stack Overflow用户
提问于 2017-01-04 16:50:19
回答 1查看 735关注 0票数 0

我有使用oracle视图/函数的rails代码。这是我的密码:

代码语言:javascript
复制
 def run_query
    connection.exec_query(
      "SELECT * FROM TABLE(FN_REQ(#{demo_type_param},#{demo_tid_param}}))")
  end

当运行Brakeman分析器时,它会警告可能的"sql注入攻击“。

我需要理解如果这是一个有效的警告,如果是,我如何补救它?

因为这是一个函数,而不是一个实际的表,所以我不确定什么是正确的方法。如果这是一个正常的模型,我就会遵循这样的模式:

Model.where("mycolumn1= ? AND mycolumn2= ?", demo_type_param, demo_tid_param).first

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-04 17:56:46

是的,这是真的。几乎每一次,从简单的连接变量构建任何SQL查询时,都容易受到SQL注入的影响。通常,当插入到查询中的数据看起来像有效的SQL并导致执行额外的查询时,每次都会发生SQL注入。

唯一的解决方案是手动执行适当的转义或使用准备好的语句,后者是首选解决方案。

使用ActiveRecord / Rails,您可以直接使用绑定的exec_query

代码语言:javascript
复制
sql = 'SELECT * FROM TABLE(FN_REQ(?,?))'
connection.exec_query(sql, 'my query', [demo_type_param, demo_tid_param])

在这里,Rails将准备数据库上的语句,并在执行时将参数添加到数据库中,确保从SQL注入中正确地转义和保存所有内容。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41469164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档