può essere usato un token per l'iniezione sql

0

Ho un token che è limitato all'accesso in sola lettura. Se qualcuno ottiene quel token, può usarlo per fare un attacco di iniezione sql?

Dato che il token è autorizzato per sola lettura, qualcuno può incorporare una query di eliminazione nella richiesta, averla letta sul lato server e in realtà esegue una cancellazione?

    
posta nanonerd 19.07.2018 - 18:40
fonte

1 risposta

2

Prima di tutto: Se il token è concatenato in una query SQL (senza escape sufficiente), quindi si , può essere usato per l'iniezione SQL. Non creare query con la concatenazione!

I token, da soli, non hanno permessi; sono solo identificatori. La logica dell'app determina quali permessi fornire al portatore del token, ma spetta all'applicazione applicarla e un'iniezione SQL (riuscita) ignora tali controlli. I database hanno anche permessi (almeno quelli migliori) e l'app avrà determinate autorizzazioni sul database che determinano cosa può fare una query che l'app invia al DB (e tutto ciò che è un'iniezione SQL, dal punto di vista di il DB, è una query su cui è stata inviata l'app). Un'app molto attenta alla sicurezza utilizzerà il principio del privilegio minimo (che dice che non si dovrebbero mai concedere più autorizzazioni di quante ne siano necessarie per eseguire il proprio compito), in modo tale che (ad esempio) una query DB che dovrebbe essere di sola lettura essere fatto usando una connessione con autorizzazione di sola lettura sul DB, e in tal caso una subquery DELETE incorporata fallirebbe davvero. Tuttavia, in pratica pochissimi sviluppatori lo fanno e l'app di solito fa tutte le query usando una connessione con permessi completi sul DB.

Le autorizzazioni dell'entità identificata dal token (presumibilmente un utente di un'app Web o simile) non hanno alcun rapporto con le autorizzazioni che l'app ha quando parla al suo database. Infatti, poiché un'iniezione SQL richiede la modifica del token, in realtà non è più l'identificatore corretto per quell'utente, quindi sicuramente non sarà soggetto a controlli di accesso specifici per l'utente.

    
risposta data 20.07.2018 - 09:27
fonte

Leggi altre domande sui tag