怎样设计安全的GraphQL API?

在这篇文章,我们将讨论一些各种GraphQL部署和迁移的安全风险,这些安全风险在客户管理过程中被发现。我们会讨论比较常见的高风险权限漏洞,以及不太常见的服务端请求伪造(SSRF)问题。上述这些问题都是我们在尝试实现从GraphQL到REST API的互操作的迁移中发现的。

除漏洞外,我们还将强调常见的错误配置和有风险的设计,来帮你避免常见错误,并为你提供一组测试用例来验证你的实现。

语言选择很关键

尽管有很多种编程语言都支持GraphQL,但是,对一些编程语言来说,诸如社区支持库之类的工具可能比较少或者不太成熟。

花点时间探索适合你的首选语言,并确定它们是否能满足你的长期维护需求。

我们在这里将重点介绍JavaScript,因为这是我们遇到的最常见的语言。

安全基线配置

在深入讨论常见的应用程序级别漏洞前,我们先重点讨论一些应该在所有GraphQL API设计中实现的常见配置。

尽管GraphQL的一个主要优势是它的表达式查询结构,但是由于缺乏默认约束,这种自由性也伴随着性能和可用性风险。与所有开销大的API操作一样,建立安全的约束和校验配置可以减少拒绝服务攻击(DoS)的机会。

由于这是一个老生常谈的话题,因此,我将不再深入讨论最常见的一些问题和它们已有的JavaScript实现方案,但我在下面将其列举出来以便在建立安全基线时进行检查:

原文链接:【https://www.infoq.cn/article/X882krcE0Riyu5dSrmRl】。未经作者许可,禁止转载。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章