Лимиты глубины/сложности (cost analysis), таймауты, Persisted Queries / allowlist, rate limit по пользователю, отключение introspection, запрет слишком больших list args.
Разбор
- Глубокая вложенность
{ a { b { c { ... }}}} дорога.
- Aliases могут размножать поля.
- Cost = веса полей + множители списков.
- WAF/API gateway дополняют, не заменяют cost.
Итог
Защита GraphQL = complexity limits + auth + allowlist/PQ.