
GraphQL gives clients a flexible query language over a single endpoint. That flexibility changes the security picture: one endpoint can expose your entire data model, and one query can ask for a very large amount of work.
Introspection, if left on, lets anyone download the full schema. Deeply nested or batched queries can overload the server. Resolvers may skip authorization checks that REST endpoints enforced, and GraphQL arguments can carry injection payloads like any other input.
In production, usually yes. It exposes your full schema to anyone.
Limit query depth, complexity and batching, and apply rate limits to the endpoint.
Try Vooki Pro free for 7 days
Test your GraphQL endpoint as thoroughly as your REST APIs. The trial unlocks every feature for 7 days, and scanning runs on your own machine.
Related: Testing APIs for mass assignment · Adding DAST to your CI/CD pipeline