IDOR
Insecure Direct Object Reference — błąd kontroli dostępu, w którym aplikacja ujawnia identyfikatory obiektów (w URL-u lub treści żądania), ale nie sprawdza, czy użytkownik ma prawo do akurat tego obiektu. /api/invoice/1234 → zmiana na 1235 → faktura innego klienta.
OWASP Top 10 z 2021 roku stawia „Broken Access Control” na pierwszym miejscu. Kolejne identyfikatory ułatwiają atak do granic śmieszności — wystarczy pętla od 1 do 100000 i cała baza ląduje na dysku atakującego. Losowe UUID zmniejszają powierzchnię ataku, ale nie usuwają przyczyny. Prawdziwe rozwiązanie to kontrola po stronie serwera przy każdym żądaniu: „czy użytkownik X jest właścicielem obiektu Y?”. Błąd jest typowy dla API REST, które sprawdzają tylko uwierzytelnienie, a nie autoryzację do konkretnego zasobu. Nowoczesne frameworki (strong parameters w Railsach, querysety z filtrowaniem po użytkowniku w Django) pomagają, lecz ręczna kontrola nadal bywa konieczna. Głośne przypadki: USPS Informed Delivery (2018) i australijski MyGov.