Security Academy→Authorisation og tilgangskontroll→Lab→IDOR: User A henter Project 102

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

Verify