hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Abuso di GraphQL: introspection, batching, profondità

27 novembre 2024 · 1 min di lettura · #web #graphql #api

GraphQL lascia al client comporre le query. Utile, ma sposta rischi: l'intero schema può essere scoperto, e i controlli di autorizzazione devono coprire ogni campo, non solo l'endpoint.

I problemi

Introspection: __schema rivela tutti i tipi e le operazioni, mappando la superficie. Query annidate: relazioni cicliche generano query enormi (DoS). Batching: molte operazioni in una richiesta aggirano il rate limit (es. brute-force di login). BOLA per campo: un campo restituisce dati altrui se manca il check.

{ __schema { types { name fields { name } } } }   # dump dello schema

Difesa

Disabilita l'introspection in produzione, limita profondità e complessità delle query (depth/cost analysis), rate limit che conti le operazioni non le richieste, e autorizzazione a livello di risolutore/campo. Persisted queries per accettare solo operazioni note.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #0
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti