Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon 在GraphQl中使用loaded()时,常见的安全陷阱是什么


在GraphQl中使用loaded()时,常见的安全陷阱是什么


当在GraphQl中使用`wherloaded()`,这通常是一种有条件加载相关数据或关联的方法(例如,基于ORM的GraphQL解析器),可能会出现几种常见的安全性陷阱。这些陷阱主要与更广泛的GraphQl安全性问题有关,但特别相关,因为
''noaded()`通常涉​​及获取其他嵌套或相关数据,从而增加复杂性和风险。

##常见的安全陷阱,plograglql中`wherloaded()`

** 1。不一致或缺少授权检查  
`loaded()`通常在运行初始解析器后,通常会触发嵌套或相关数据的加载。如果在每个解析器或数据加载点(包括'Whesloaded()`)触发的授权逻辑并未始终如一地应用,则未经授权的用户可能可以访问敏感数据。这是一个普遍的问题,可以保护相同数据的某些路径,而其他问题(例如通过载荷()`)不是,允许攻击者绕过访问控件[4] [6]。必须在查询级别和所有嵌套解析器或数据加载器中执行授权。

** 2。过度提取且复杂的查询导致拒绝服务(DOS)  
使用`ploaded()`可能会引起深度嵌套的查询,以获取大量相关数据。攻击者可以通过制定造成过多数据加载和处理的查询来利用这一点,从而导致资源耗尽和DOS。 GraphQl在单个查询中获取多个相关对象的能力使得预测资源使用情况变得具有挑战性,并且`naleaded()`可以通过有条件加载其他数据来加剧此问题[4] [5]。缓解措施包括查询深度限制,复杂性评分和限制速率。

** 3。通过不正确的现场选择接触敏感数据  
如果``ploaded()
`'()`而无需仔细控制哪些字段,则可以在GraphQL响应[5]中无意中返回诸如密码,令牌或私人用户详细信息之类的敏感信息,例如密码,令牌或私人用户详细信息。如果缺少授权检查或错误消息泄漏敏感信息,则此风险会加剧。即使加载了嵌套数据,开发人员也必须确保永远不会暴露敏感的字段。

** 4。通过不当输入验证进行注射攻击
当加载()`与动态参数或过滤器一起使用时,输入验证不当会导致注射漏洞,例如GraphQL查询注入甚至SQL注入,如果基本数据获取未正确地参数化[6]。攻击者可能会注入操纵数据获取逻辑的恶意查询或命令。正确的输入验证和参数化查询的使用至关重要。

** 5。绕过率限制和蛮力保护
因为“载荷()”可能会在单个查询中引起多个嵌套数据获取,所以攻击者可以利用它绕过传统的速率限制。例如,他们可能会发送一个复杂的查询,该查询触发许多数据获取或突变,有效地执行蛮力或枚举攻击而不会触发每次要求限制[4] [7]。费率限制策略必须考虑查询复杂性和嵌套操作。

** 6。由于架构内省和工具增加了攻击表面
使用`loaded()的使用通常反映了具有多个嵌套关系的复杂架构。攻击者可以使用GraphQl内省和诸如GraphIQL之类的工具来发现这些关系和工艺查询,这些查询(当()()`访问意外数据[1] [8]。禁用生产中的内省或将其限制在授权用户中可以降低这种风险。

### 概括

使用`wherloaded()`在GraphQl中围绕:

- 无法在所有嵌套数据加载路径上执行一致的授权。
- 允许引起DOS的过度复杂或深度查询。
- 通过嵌套字段暴露敏感数据。
- 输入验证不足导致注射攻击。
- 绕过复杂的嵌套查询引起的速率限制。
- 由于架构内省和工具而增加的暴露。

缓解措施包括在每个解析器上进行严格的授权检查,查询复杂性和深度限制,严格的输入验证,仔细的架构设计,在生产中禁用内省以及针对GraphQl的查询结构量身定制的综合速率[3] [4] [4] [5] [5] [6] [8]。

引用:
[1] https://portswigger.net/web-security/graphql
[2] https://www.imperva.com/blog/graphql-vulnerabilities-common-attacks/
[3] https://tyk.io/blog/graphql-security-7-common-vulnerabilities-and-how-how-to-mitigate-the-crisks/
[4] https://www.brightsec.com/blog/graphql-security/
[5] https://blog.convisoappsec.com/en/security-ingraphql/
[6] https://wundergraph.com/blog/the_complete_graphql_security_guide_fixing_the_13_most_common_graphql_vulnerabilities_to_to_to_to_make_your_your_api_api_production_ready_ready
[7] https://beaglesecurity.com/blog/article/graphql-attacks-vulnerabilities.html
[8] https://www.fastly.com/blog/exploring-the-security-implications-of-graphql