Skip to content

[SECURITY] Prevent IDOR (Insecure Direct Object Reference) pada Endpoint Berbasis ID #966

@vickyrolanda

Description

@vickyrolanda

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

  1. Audit seluruh endpoint/resource berbasis ID
  2. Implement policy permission/authorization check pada controller/resource/route
  3. 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions