GraphQL è un linguaggio di query per API e un runtime che consente ai client di richiedere e modificare dati attraverso un singolo endpoint. Invece di risposte fisse, un client può chiedere solo i campi di cui ha bisogno, il che rende le API efficienti per app web, app mobili e automazione. La stessa flessibilità rende anche GraphQL un confine di sicurezza di alto valore: un singolo endpoint può esporre molte operazioni, spesso su tipi di dati e autorizzazioni diversi.
Nelle attacchi reali, GraphQL è spesso preso di mira per il riconoscimento dello schema, l'eccesso di dati restituiti e le falle di autorizzazione in singoli resolver o campi. Se i controlli di accesso mancano o sono incoerenti, un attaccante può leggere o modificare dati a cui non dovrebbe accedere. I difensori riducono il rischio imponendo l'autorizzazione su ogni campo, limitando l'introspezione in ambienti sensibili, monitorando query insolite e applicando limiti di frequenza e aggiornamenti rapidi. Nelle revisioni di sicurezza, GraphQL dovrebbe essere considerato parte del perimetro, non solo uno strato di comodità.


