首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql中的安全SQL动态列查询(无Sql注入)

Postgresql中的安全SQL动态列查询(无Sql注入)
EN

Stack Overflow用户
提问于 2011-02-11 03:45:31
回答 1查看 1.2K关注 0票数 0

通过传递动态列和表名,我使用Rails从Postgresql获取数据。

我不能使用ActiveRecord,因为从shapefile导入的形状数据是动态的表名和列名。我必须在查询中使用带有列名的双引号,以避免出现这样的问题:例如,"addr:city“。

代码语言:javascript
复制
def find_by_column_and_table(column_name, shape_table_name)
            sql = "SELECT \"#{column_name}\" FROM \"#{shape_table_name}\" WHERE \"#{column_name}\" IS NOT NULL"
            ActiveRecord::Base.connection.select_one(sql)
        end

生成sql语句的2个示例:

代码语言:javascript
复制
SELECT "place" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"
SELECT "addr:province" FROM "shp_6c998258-32a6-11e0-b34b-080027997e00"

我想确保查询中没有sql注入。

有人能告诉我如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2011-02-11 04:03:12

防止注入、加速查询和捕获错误的推荐方法是使用位置参数或存储过程。更少的是自找麻烦。

  • http://nasir.wordpress.com/2007/12/03/stored-procedures-and-rails/
  • http://www.postgresql.org/docs/9.0/static/sql-expressions.html#AEN1834
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4965424

复制
相关文章

相似问题

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