Insecure Direct Object Reference — foydalanuvchi yuborgan obyekt identifikatori bo‘yicha server tegishli authorization tekshiruvisiz ma’lumot yoki amalni taqdim etadigan access control zaifligidir.
Misol
URLdagi order ID almashtirilganda boshqa foydalanuvchi buyurtmasi ochilsa, login mavjud bo‘lsa ham object-level ruxsat buzilgan. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Asosiy sabab
Controller obyektni global ID bilan topadi, lekin current user, tenant, role yoki ownership scope’ini queryga qo‘shmaydi. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Himoya
Har read, update, delete va download server tomonda policy orqali tekshiriladi; UI tugmasini yashirish himoya emas. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Identifikator
UUID taxmin qilishni qiyinlashtiradi, ammo authorizationni almashtirmaydi; sizgan ID baribir ishlatilishi mumkin. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Mass action
Batch endpoint har bir obyektni, nested resource esa parent-child va tenant munosabatini tekshiradi. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Sinov
Ikki user va ikki tenant bilan negative test ID almashtirib, response, side effect va timingni tekshiradi. Insecure Direct Object Reference uchun bu jihat faqat nazariy qoida emas: u API, saqlash qatlami va operatsion jarayonda bir xil talqin qilinishi kerak. Noto‘g‘ri yoki yashirin taxminlar integratsiya, xavfsizlik va tiklanish paytida xato keltiradi. Shu sababli qoida hujjatlashtiriladi, avtomatik test bilan tekshiriladi va kuzatuv ma’lumoti orqali production xulqi bilan solishtiriladi.
Amaliy boshqaruv
Insecure Direct Object Reference joriy etilganda egasi, versiyasi va xato holati belgilanadi. Normal yo‘l bilan birga timeout, duplicate, noto‘g‘ri ruxsat va qisman nosozlik sinovdan o‘tadi. Metrikalar faqat muvaffaqiyat sonini emas, kechikish, rad etish va recovery natijasini ham ko‘rsatadi. O‘zgarish canary yoki kichik doirada tekshirilib, keyin kengaytiriladi. Maxfiy ma’lumot log va diagnostikaga zarur bo‘lmagan holda kiritilmaydi.
Bog‘liq tushunchalar
Object-level authorization, Broken Access Control, IDOR, Multi-tenancy, UUID, Ownership, Access control test