首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无需字符串连接的动态组装PostgreSQL jsonb查询的方法

无需字符串连接的动态组装PostgreSQL jsonb查询的方法
EN

Stack Overflow用户
提问于 2017-05-01 01:13:57
回答 1查看 273关注 0票数 1

我想从/ Spring应用程序中查询PostgreSQL数据库中的PostgreSQL jsonb列。

尽管所有文档都具有相同的结构,但事先并不知道jsonb文档的结构。jsonb列中的文档结构在数据库表中描述。

应用程序从数据库中获取jsonb文档结构描述。下一步是对jsonb数据运行分析查询。

由于在开发时不知道jsonb数据的结构,所以必须动态地组装分析查询。如何在不手动连接字符串的情况下在Java代码中创建查询?

我担心手工组装查询将是复杂的、不可读的,并且可能会创建SQLi漏洞。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 01:25:59

如果需要从存储在其他表中的元数据动态构建SQL查询,则必须使用字符串连接来构建SQL。

我赞赏您注意到并关注SQL注入漏洞,但这只是在使用用户提供的值时才关心的问题。

如果元数据被保证是安全的,那么您可以安全地使用该元数据来动态构建SQL语句。如果元数据是由用户输入的,即它是用户提供的,那么您有三个选择:

  1. 验证元-输入时的数据,例如确保字段名是有效的名称。
  2. 编译SQL时编码元数据。这意味着引用字段名。如果元数据包括值(例如用于筛选),则应将值作为?参数标记和赋予PreparedStatement对象的实际值插入到SQL中。
  3. 以上两件事。双重守卫是件好事。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43713032

复制
相关文章

相似问题

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