graphql-threat-matrix 专为漏洞赏金猎人、安全研究人员和黑客打造,旨在帮助发现多种 GraphQL 实现中的漏洞。
不同 GraphQL 实现如何解释和遵循 GraphQL 规范的差异,可能导致安全漏洞和独特的攻击向量。通过分析和比较不同实现中驱动安全风险的因素,GraphQL 生态系统可以做出更安全的部署决策,并共同提升所有实现的安全成熟度。
图例
✅ - 默认启用
⚠️ - 默认禁用
❌ - 不支持
| 实现 | 验证 | 字段建议 | 查询深度限制 | 查询成本分析 | 自动持久化查询 | 自省 | 调试模式 | 批量请求 |
|---|---|---|---|---|---|---|---|---|
| wp-graphql | 38 | ✅ | ⚠️ | ❌ | ❌ | ⚠️ | ⚠️ | ✅ |
| graphql-php | 37 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ⚠️ | ⚠️ |
| graphql-api-for-wp | 37 | ⚠️ | ❌ | ❌ | ✅ | ✅ | ⚠️ | ✅ |
| Apollo | 34 | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| graphql-yoga |
使用 graphw00f 来识别目标 GraphQL API 的指纹并确定后端实现。
有兴趣贡献?发现差异?请创建 GitHub Issue 或拉取请求并提供详细信息。
| 34 |
| ✅ |
| ⚠️ |
| ❌ |
| ❌ |
| ⚠️ |
| ⚠️ |
| ⚠️ |
| graphene | 34 | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ⚠️ |
| Ariadne | 34 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ⚠️ | ❌ |
| Strawberry | 34 | ✅ | ⚠️ | ❌ | ❌ | ✅ | ❌ | ❌ |
| graphql-dotnet | 29 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ❌ | ⚠️ |
| graphql-ruby | 28 | ✅ | ❌ | ⚠️ | ⚠️ | ✅ | ❌ | ✅ |
| Sangria | 27 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ❌ | ⚠️ |
| Tartiflette | 26 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| graphql-java | 26 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ❌ | ⚠️ |
| gqlgen | 25 | ✅ | ❌ | ⚠️ | ⚠️ | ✅ | ⚠️ | ⚠️ |
| Dgraph | 25 | ✅ | ❌ | ❌ | ⚠️ | ✅ | ❌ | ❌ |
| graphql-go | 24 | ✅ | ❌ | ❌ | ❌ | ✅ | ⚠️ | ❌ |
| juniper | 24 | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ⚠️ |
| Diana.jl | 10 | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| gql-dart/gql | 9 | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| Agoo | 1 | ❌ | ❌ | ❌ | ❌ | ✅ | ⚠️ | ❌ |
| Lighthouse | 1 | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | ✅ |