Masalah
Beberapa endpoint API/web menggunakan resource ID tanpa pengecekan kepemilikan atau hak akses, sehingga user bisa akses/memodifikasi data milik user lain hanya dengan menebak ID atau enumerasi.
Dampak
- Leak data user, violation GDPR/privacy
- User bisa mengakses/mengedit data critical yang harusnya restricted
Langkah Penyelesaian
- Audit seluruh endpoint/resource berbasis ID
- Implement policy permission/authorization check pada controller/resource/route
- Pertimbangkan pakai UUID sebagai public identifier
Contoh Implementasi
$this->authorize('view', $user); // Policy check
Setelah Perbaikan
- Tes enumerasi resource oleh user non-admin, pastikan hanya data sendiri yang bisa diakses.