Apa itu IDOR?

Dalam keamanan aplikasi web, terdapat berbagai jenis kerentanan yang dimanfaatkan oleh penyerang. Salah satunya adalah Insecure Direct Object Reference atau biasa disebut IDOR.

IDOR terjadi karena Access Control yang diterapkan sebuah aplikasi tidak melakukan pengecekan terhadap pengguna yang mencoba mengakses sebuah object (seperti data, file, atau resource) secara langsung sehingga menyebabkan Broken Access Control.

Kerentanan ini bukan hal yang sepele. Dalam OWASP Top 10 2025, kategori Broken Access Control menempati posisi pertama sebagai kerentanan paling kritis pada aplikasi, dan IDOR termasuk salah satu bentuk dari kategori tersebut.

Dengan kata lain, aplikasi "terlalu percaya" pada input yang diberikan pengguna.

Bagaimana Cara Kerja IDOR?

None
Perbandingan antara secure flow dan IDOR flow pada aplikasi web.

Setelah memahami apa itu IDOR, pertanyaannya adalah: bagaimana kerentanan ini bisa terjadi dalam sebuah aplikasi?

Pada dasarnya, IDOR terjadi ketika aplikasi menggunakan sebuah identifier (seperti id) untuk mengambil data, namun tidak melakukan verifikasi apakah pengguna yang melakukan request memiliki hak akses terhadap data tersebut.

Misalkan sebuah aplikasi memiliki endpoint sebagai berikut:

https://vulnerableweb.com/invoice?id=0001

Aplikasi akan mengambil data berdasarkan id yang diberikan oleh pengguna. Sedangkan dalam implementasi Access Control yang rentan, aplikasi biasanya akan:

  • menerima parameter id
  • mengambil data dari database
  • menampilkan hasilnya ke pengguna

Tanpa melakukan pengecekan apakah data tersebut benar-benar milik pengguna yang memiliki akses sah terhadap data tersebut. Akibatnya, penyerang dapat dengan mudah melakukan modifikasi terhadap nilai parameter id tersebut:

https://vulnerableweb.com/invoice?id=0002

Karena tidak adanya validasi, aplikasi tetap akan mengembalikan data tersebut dan disitulah IDOR terjadi — ketika akses terhadap suatu resource hanya bergantung pada input pengguna bukan pada hak akses yang seharusnya.

Mengapa IDOR Berbahaya?

Kerentanan yang terlihat sederhana, namun memberikan dampak serius terhadap keamanan sebuah aplikasi. Begitulah penulis dapat menggambarkan seberapa bahaya kerentanan IDOR.

Berbeda dengan jenis kerentanan lain yang membutuhkan teknik lebih kompleks, IDOR sering kali hanya memanfaatkan perubahan kecil pada parameter request. Hal tersebut berdampak langsung pada data pengguna dan tingginya nilai kerentanan IDOR apabila dihitung menggunakan CVSS 4.0.

Beberapa risiko yang dapat ditimbulkan:

  • Akses data pengguna lain
  • Kebocoran informasi sensitif
  • Manipulasi data
  • Pelanggaran privasi dan regulasi

Selain 4 risiko diatas, yang membuat IDOR semakin berbahaya adalah karena kerentanan ini sering kali tidak terlihat sebagai sebuah bug. Mungkin dari sisi aplikasi, semuanya tampak berjalan normal namun dibalik itu terdapat celah yang memungkinkan akses tidak sah.

Cara Mencegah IDOR

Untuk mencegah IDOR, pendekatan utama yang harus dilakukan adalah memastikan bahwa akses terhadap resource harus melalui proses authorization yang tepat.

1. Validasi otorisasi pada sisi server Pastikan setiap request oleh pengguna diperiksa oleh aplikasi apakah pengguna memiliki hak akses terhadap data yang diminta.

2. Terapkan prinsip least privilege Berikan akses seminimal mungkin kepada pengguna, hanya sebatas akses yang dibutuhkan saja.

3. Gunakan centralized access control Implementasikan mekanisme access control yang terpusat seperti menggunakan middleware agar konsisten pada seluruh endpoint.

Penutup

Insecure Direct Object Reference (IDOR) menunjukkan bahwa sebuah celah kecil dalam membangun sebuah aplikasi dapat menyebabkan dampak besar terhadap keamanan aplikasi.

Kerentanan ini mengingatkan kita bahwa keamanan tidak hanya bergantung pada mekanisme autentikasi saja, tetapi juga bagaimana cara aplikasi menerapkan access control secara konsisten.

Dengan memahami cara kerja, dampak, serta pencegahannya, kita dapat membangun aplikasi yang aman dan terhindar dari akses yang tidak sah.