TGViewer
| AmirHossein | | AmirHossein | @amirhdeveloper · 610 subscribers
Post #98 147
#security #bug
دسته بندی Access Control and Data Exposure

باگ Insecure Direct Object References (IDOR) یک نوع باگ امنیتی است که زمانی رخ می‌دهد که یک برنامه‌ی وب (یا نرم‌افزار دیگر) به شئ ها یا منابع مستقیما با استفاده از مقادیر قابل تغییر توسط کاربر ارجاع داده می‌شود. این ارجاع‌ها می‌توانند به داده‌ها یا منابع حساس در سیستم دسترسی پیدا کنند که قرار است توسط کاربران دیگر قابل دسترسی نباشند.

مثال:

فرض کنید یک وب‌سایت فروشگاهی به کاربران اجازه می‌دهد که به فاکتورهای خرید خود دسترسی پیدا کنند و آن‌ها را مشاهده کنند. فاکتورها با استفاده از یک شناسه یکتا (مثل شماره فاکتور) شناسایی می‌شوند و کاربران با ارسال این شناسه‌ها می‌توانند فاکتورهای خود را مشاهده کنند.

$invoice_id = $_GET['invoice_id'];

حمله‌کننده می‌تواند با تغییر شناسه فاکتور در URL، به فاکتورهای دیگر که مربوط به او نیستند، دسترسی پیدا کند:
https://example.com/view_invoice.php?invoice_id=123456
و با تغییر شناسه به شکل زیر:
https://example.com/view_invoice.php?invoice_id=987654

به فاکتورهای دیگری دسترسی پیدا کند که ممکن است مربوط به کاربران دیگری باشند و اطلاعات حساس را نمایش دهد.

روش های جلوگیری:

1- اطمینان حاصل کنید که نشانه‌ها یا شناسه‌ها برای دسترسی به منابع موثق هستند و به صورت تصادفی و قابل حدس نیستند.

2- قبل از ارجاع به یک منبع یا شئ، اعتبارسنجی دسترسی کاربر به منبع را انجام دهید و مطمئن شوید که کاربر مجاز به دسترسی به آن منبع است.

3- از مقادیری برای شناسایی منابع استفاده کنید که غیرقابل پیش‌بینی باشند و نتوان از تغییر یا حدس آن‌ها به منابع حساس دسترسی پیدا کرد.

4- تعیین سطح دسترسی به منابع مختلف بر اساس نقش‌ها و مجوزها و محدود کردن دسترسی‌ها به منابع بر اساس آن‌ها.

5- با استفاده از مکانیزم‌های توسعه‌یافته تحت عنوان
RBAC (Role-Based Access Control) یا ABAC (Attribute-Based Access Control)
می‌توانید سطح دسترسی‌ها را بهبود دهید.

.
  • 💔 1
More from @amirhdeveloper
  1. Sep 30, 2026پکیج LaraGram Sentinel منتشر شد؛ یک پنل مانیتورینگ که هیچ چیزی از زیر دستش در نمی‌ره! تمام…
  2. Sep 23, 2026از امروز با کاهش شدید حاکرها مواجه میشیم
  3. Sep 19, 2026🔴 سوال سوم دو Region دارید: US-East و EU-West. کاربران در هر دو Region هستند. سیستم باید…
  4. Sep 19, 2026🟠 سوال دوم فرض کنید Service A به Service B درخواست می‌زند. B به‌دلیل overload، latency با…
  5. Sep 19, 2026🟢 سوال اول فرض کنید یک سرویس backend داریم که به PostgreSQL وصل می‌شود. تعداد requestها ن…
  6. Sep 19, 2026خیلی وقته پست‌های کانال فقط درمورد LaraGram بوده، وقتشه یکم جالب‌ترش کنیم اگر ممبرها هنوز…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →