IDOR: User A henter Project 102
Utfør kun mot din egen lokale testapplikasjon med testbrukere du har opprettet selv.
1
Scenario
Appen har Projects. User A eier Project 101, User B eier Project 102. Testes på din egen lokale app.
2
Vulnerability
GET /api/projects/:id slår opp prosjektet på ID uten å sjekke eier (Broken Object Level Authorisation).
3
Inspect
4
Test
5
Explain
Serveren stoler på at UI bare viser egne prosjekter. Men ID-en kommer fra klienten, og A kontrollerer klienten. Eierskap må sjekkes ved hvert oppslag.
6
Fix
Vulnerable · sql
select * from projects where id = $1; -- via service role
Secure · sql
-- Bruk brukerens klient + policy create policy "owner" on projects for all to authenticated using (owner_id = auth.uid()) with check (owner_id = auth.uid());
7