Se ti capisco bene ... Immagina di spiare i tuoi meccanismi interni Javascript per un po '. Immagina di essere in grado di cercare quanto segue:
-
DeleteUserRecord()
-
UpdateUserRecord()
E in ciascuno, stai abbinando questi ID alla chiave primaria nel database. Ad esempio, il tuo codice lo esclude: DELETE [record] FROM [table] WHERE [id] = '1234'
, e il tuo Javascript è simile al seguente: DeleteUser(1234)
. Cosa succede se lo cambio in 1
? Cosa succede se elimino ogni singolo utente? Cosa succede se elimini il primo utente, che potrebbe presumibilmente essere il admin
?
O se potessi aggiornare il record di un singolo utente, ma cambio l'ID in 1
e make myself the admin
? UpdateUser(1)
anziché UpdateUser(1234)
Sembra che il tuo codice possa essere vulnerabile a un riferimento diretto all'oggetto exploit.
Tutto quello che devo fare è manomettere la tua richiesta javascript e sei Teh PwNz0rEd. Prova leggendo questa discussione per una spiegazione migliore.