IDOR/BOLA: quando l'ID è l'unica difesa
Insecure Direct Object Reference (o Broken Object Level Authorization) è mancanza di controllo di autorizzazione a livello di risorsa. Il server verifica chi sei ma non se puoi vedere quell'oggetto.
GET /api/invoice/1001 -> la tua fattura
GET /api/invoice/1002 -> la fattura di un altro (accessibile!)Gli ID sequenziali rendono l'enumerazione banale. Gli UUID nascondono ma non autorizzano: restano IDOR se manca il controllo.
Difesa
Su ogni accesso a risorsa verifica che appartenga (o sia visibile) all'utente autenticato: WHERE id = ? AND owner_id = ?. Centralizza il controllo, non lasciarlo al singolo endpoint. Gli ID non prevedibili sono difesa in profondità, non autorizzazione.