Während aus der Freiheit bei der Datenabfrage von GraphQL einerseits viele positive Merkmale resultieren, kann sie andererseits jedoch auch zum ernsthaften Sicherheitsproblem werden: Vor allem, wenn Sie offene APIs anbieten wollen, bei denen Sie das Abfrageverhalten von Drittanbieter-Clients nicht kontrollieren können. So ist es möglich, dass eine zu hohe Zahl an Querys den Server zum Absturz bringt (absichtlich oder unabsichtlich). Ein derartiges Szenario, vor dem Sie sich entsprechend schützen müssen, droht Ihnen beim Einsatz einer REST-API nicht so schnell. GraphQL im Backend so umzusetzen, dass es performant und sicher läuft, ist also wesentlich schwieriger.
Zudem ist auch die Implementierung eines Caching-Verfahrens für nicht veränderliche Abfragen mit GraphQL erheblich komplizierterals für Abfragen über eine REST-Schnittstelle. Letztere lassen sich durch die Caching-Methoden der HTTP-Spezifikation zwischenspeichern (beispielsweise im Browser).