点击蓝字
关注我们
始于理论,源于实践,终于实战
老付话安全,每天一点点
激情永无限,进步看得见
严正声明
本号所写文章方法和工具只用于学习和交流,严禁使用文章所述内容中的方法未经许可的情况下对生产系统进行方法验证实施,发生一切问题由相关个人承担法律责任,其与本号无关。
特此声明!!!
-
在将 API 部署到生产环境时执行以下步骤:
-
禁用内省information功能,如需要启用内省功能,查看 API 的架构,以确保它不会向公众公开意外的字段。
-
禁用Suggestions,防止攻击者使用 Clairvoyance 或类似工具收集有关底层架构的信息。
-
正确实现授权鉴权逻辑:由于GraphQL多了中间层对查询语言进行语法解析等操作,加上其单路由形态,容易使开发者在不完全理解其特性和运行机制时,错误实现甚至忽略API调用时的授权鉴权行为。虽然GraphQL和RESTful API一样可将授权逻辑委托给业务逻辑层,但务必要对GraphQL中的各个Query和Mutation做好授权鉴权,防止攻击者非法请求到一些非预期接口,执行高危操作,例如查询所有用户的详细信息等。
-
限制 API 查询的查询深度。query depth” 是指查询中的嵌套级别数。高度嵌套的查询可能会对性能产生重大影响,如果接受这些查询,可能会为 DoS 攻击提供机会。通过限制 API 接受的查询深度,您可以降低发生这种情况的可能性。
-
配置操作限制。操作限制使您能够配置 API 可以接受的唯一字段、别名和根字段的最大数量。
-
配置查询可以包含的最大字节数。
-
使API仅接受通过 JSON 编码的 POST 进行的查询。
-
使API 验证提供的内容是否与提供的内容类型匹配。
-
使API 具有安全的 CSRF 令牌机制。
END
老付
欢迎扫码
关注我们
网络安全
原文始发于微信公众号(老付话安全):防止 GraphQL 攻击
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论