怎样设计安全的GraphQL API?( 三 )


? 7. 转换和缓存:GraphQL 到 REST:当注入特定 URI 字符时,REST API 会报错吗;REST 到 GraphQL:当向前端 REST API 的查询参数提交 JSON 语句时,GraphQL 会报错吗;缓存:当快速提交请求时,会出现预期之外的现象吗?两个独立的用户账户快速提交请求又会怎么样呢?
本文没有讨论以下日志测试用例,但也值得考虑:

  • 服务器端日志是否跟踪相关 session 和操作名?你能确定与恶意请求相关的用户吗?
  • 当发生开销大的查询或其它异常时,你是否记录?
结论我们在本文讨论了各种常见的 GraphQL bug,但是在特定部署上下文中,它会出现更多的 bug;错误配置的中间缓存层或者不安全的服务器端查询构建都会导致难以发现的 bug 。
强大的安全性来自可靠的设计模式和易于阅读的代码,而且,最常见的缺陷仍来自不恰当的业务逻辑设计和授权控制 。
此外,我们推荐阅读 Shopify’s GraphQL design tutorial ,它分享了他们的经验教训以及如何利用第三方库进行安全配置和授权,从而让社区能共同受益 。
原文链接:
https://labs.bishopfox.com/tech-blog/design-considerations-for-secure-graphql-apis




推荐阅读