
Estrutura de ameaças GraphQL usada por profissionais de segurança para pesquisar lacunas de segurança em implementações GraphQL
graphql-threat-matrix foi construído para caçadores de bug bounty, pesquisadores de segurança e hackers para auxiliar na descoberta de vulnerabilidades em múltiplas implementações GraphQL.
As diferenças na forma como as implementações GraphQL interpretam e cumprem a especificação GraphQL podem levar a lacunas de segurança e vetores de ataque únicos. Ao analisar e comparar os fatores que impulsionam os riscos de segurança em diferentes implementações, o ecossistema GraphQL pode tomar decisões de implantação mais seguras, bem como avançar coletivamente a maturidade de segurança de todas as implementações.
Legenda
✅ - Ativado por padrão
⚠️ - Desativado por padrão
❌ - Sem suporte
| Implementação | Validações | Sugestões de Campo | Limite de Profundidade de Consulta | Análise de Custo de Consulta | Consultas Persistidas Automáticas | Introspecção | Modo de Depuração | Requisições em Lote |
|---|---|---|---|---|---|---|---|---|
| wp-graphql | 38 | ✅ | ⚠️ | ❌ | ❌ | ⚠️ | ⚠️ | ✅ |
| graphql-php | 37 | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ⚠️ | ⚠️ |
| graphql-api-for-wp | 37 | ⚠️ | ❌ | ❌ | ✅ | ✅ | ⚠️ | ✅ |
| Apollo | 34 | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | ✅ | ✅ |
| graphql-yoga | 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 | ✅ | ⚠️ | ⚠️ | ⚠️ | ✅ | ⚠️ | ✅ |
Use o graphw00f para identificar a impressão digital de uma API GraphQL alvo e determinar a implementação do backend.
Interessado em contribuir? Encontrou uma discrepância? Crie uma issue ou PR no GitHub com seus detalhes.