为什么在客户端编写GraphQL查询是安全的?

时间:2015-08-30 01:39:49

标签: sql-injection graphql

最近发布了

GraphQL,它似乎鼓励在客户端编写查询。

  1. 什么使得在客户端编写GraphQL查询安全,而不是SQL查询?
  2. GraphQL不能进行注射吗?
  3. 如果在客户端提供查询非常有用,为什么不让SQL版本不受注入?

1 个答案:

答案 0 :(得分:14)

由于在松弛频道中回复它的用户没有回答,我会发布他们的答案。

  1. 针对明确构建的模式验证GraphQL查询,以向客户端公开数据。 SQL不会对数据库架构结构以外的任何内容验证您的查询。
  2. 理论上,您的GraphQL端点具有某种安全性,可以验证用户是否可以在查询的起始点查询数据。一旦它们进入基于图形的模式,权限就是graphQL模式定义所固有的,并且注入不会完成任何事情。
  3. 制作一个不受注入的SQL版本将涉及一些与GraphQL相同的验证。允许所有请求的数据/突变的某种验证。正如聊天所引用的那样,注入并不是SQL固有的问题,而且#34;
  4. 来自GraphQL /#general Slack chat的 charlie samwgoldman 的答案。