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.