# GraphQL

#### Ausência de controle anti automação

Verificar se a API GraphQL possui limite de requisições por minuto. Deve ser testado fazendo 20+ requests da mesma query em um curto período de tempo.

***

#### Erros descritivos

Verificar se erros de query inválida expõem stack traces, nomes de tabelas SQL, resolvers internos ou dados sensíveis. Deve ser testado com query malformada como { user(id: "invalid") { secretField } }.\
Erros devem ser sanitizados via formatError para mostrar apenas códigos/mensagens genéricas.

***

#### Enumeração de IDs

Verificar se IDs sequenciais (1,2,3...) podem ser enumerados via queries GraphQL sem autenticação. Deve ser testado com { user(id: "1") { name }, user(id: "2") { name } }.\
Usar UUIDs v4 ou exigir autenticação em todas as queries de recursos sensíveis.

***

#### Instropecção habilitada

Verificar se a query \_\_schema { types { name } } retorna o schema completo da API. Deve ser testado colando diretamente no endpoint GraphQL.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://handbook.vantico.com.br/metodologias/api/low-hanging-fruits/graphql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
