IDOR در یک API بهجای صفحهی وب (JSON Response Leakage)
چرا IDOR در APIهای JSON اغلب راحتتر از نسخهی وب قابلکشف و بهرهبرداری است.
وقتی یک فرانتاند SPA با یک API ارتباط دارد، تمام درخواستها را میتوان مستقیم در Burp/DevTools دید و شناسهها را دستکاری کرد؛ بدون نیاز به رندر دوبارهی صفحه. این یعنی تست IDOR روی APIها معمولاً سریعتر و نتیجهبخشتر است.
نکتهی مهم
بعضی تیمها authorization را فقط در لایهی رندر (نمایش/عدمنمایش دکمه) پیاده میکنند، نه در خودِ API؛ یعنی هرچند دکمهی "مشاهده" برای کاربر دیگری نمایش داده نمیشود، endpoint API بکاند همچنان بدون بررسی پاسخ میدهد.
نحوهی شناسایی
- تمام درخواستهای API یک جلسهی عادی کاربری را در Burp ضبط کنید.
- هر پارامتر شناسه (id، uuid، reference) را با مقادیر متعلق به حساب دیگر جایگزین و پاسخ را بررسی کنید.
راهحل
Authorization همیشه باید در لایهی API/بکاند اعمال شود؛ هیچوقت نباید فقط به مخفیکردن عناصر UI اعتماد کرد.
تمرین عملی در آزمایشگاههای IDOR (Insecure Direct Object Reference) ›