Security Academy→Authentication→Lab→Skjult Admin-knapp

Skjult Admin-knapp

Utfør kun mot din egen lokale testapplikasjon med testbrukere du har opprettet selv.
1

Scenario

Admin-panel vises bare for user.role === 'admin'. Panelet kaller deleteUser.

2

Vulnerability

Endpointet sjekker ikke rolle server-side.

3

Inspect

4

Test

5

Explain

Rolle-sjekken lever bare i React. Endpointet er tilgjengelig for alle med gyldig session.

6

Fix

Vulnerable · ts
.handler(async ({ data }) => deleteUser(data.id))
Secure · ts
.middleware([requireSupabaseAuth])
.handler(async ({ data, context }) => {
  if (!(await isAdmin(context))) throw new Response(null, { status: 403 });
  return deleteUser(data.id);
})
7

Verify