↓ Skip to main content

“Compare this to the REST world where generally speaking you would authorise every endpoint, a far smaller task.”

bessey.dev ↗

GraphQL hands untrusted clients a query language and asks you to authorise every field in every context. Even an empty schema lets an attacker craft an introspection query that returns megabytes of JSON. Then the authorisation layer adds its own N+1 queries on top of the resolver ones. Six years in, the recommendation is an OpenAPI REST API, which is what most teams needed before Facebook’s problem became everyone’s.