【问题标题】:GraphQL Dynamic Query SQL InjectionGraphQL 动态查询 SQL 注入
【发布时间】:2021-02-14 03:04:14
【问题描述】:

关于 GraphQL 及其对 SQL 注入的漏洞的问题。假设我正在执行一些动态搜索,其中用户在字段中输入文本,我将其用作 graphQL 搜索的参数。

所以,我最终得到了这样的结果:

{
   data {
     location: user_input
  }
}

其中 user_input 是用户指定的变量。

现在,假设用户要尝试在此处输入一些恶意代码,以擦除数据库或类似的东西(即 1=1 攻击)。这会在这里工作吗? GraphQL 是否只是将查询转换为 SQL,因此这会很危险吗?或者 GraphQL 会阻止此类事情的发生吗?

谢谢

【问题讨论】:

    标签: facebook-graph-api graphql sql-injection graphql-js graphql-java


    【解决方案1】:

    GraphQL 是一种查询语言。来自spec

    GraphQL 是一种查询语言,旨在通过提供直观和灵活的语法和系统来描述其数据需求和交互来构建客户端应用程序...... GraphQL 不是一种能够进行任意计算的编程语言,而是一种用于查询具有本规范中定义的功能的应用程序服务器。 GraphQL 不要求实现它的应用服务器使用特定的编程语言或存储系统。

    GraphQL 与底层数据层无关。它可以与 SQL 数据库一起使用,但也可以与 NoSQL 数据库、内存中键值存储、文件系统等一起使用。

    特定的 GraphQL 服务是否容易受到 SQL 注入的攻击,最终取决于该服务的实现方式。它是 GraphQL 服务这一事实并没有真正考虑在内。

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2018-08-21
      • 2021-12-26
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多