آسیب پذیری Insecure Direct Object References


شرح آسیب پذیری:

آسیب پذیری Insecure Direct Object References وقتی اتفاق می افتد که برنامه با استفاده از ورودی کاربر به صورت مستقیم و بدون تغییر به Object ها دسترسی داشته باشد. بدین صورت User می تواند Authorization را Bypass نموده و به صورت مستقیم به رکورد های بانک اطلاعاتی و فایل ها دسترسی داشته باشد. این مورد معمولا با دستکاری مستقیم در Value پارامتری که به صورت مستقیم به Object اشاره دارد صورت می پذیرد. به عنوان مثال دیگر از این آسیب پذیری می توان به مشاهده فاکتور کاربران دیگر در یک سیستم فروشگاهی با تغییر مقدار پارامتر مربوط به Invoiced نمود. این مورد در URL زیر مشهود است.

http://foo.bar/somepage?invoice=65427

چگونه این آسیب پذیری را رفع کنیم ؟

1) از اشاره مستقیم به Object ها خودداری گردد. می توان به جای اشاره مستقیم از نام Object و یا عبارتی که قابل حدس نباشد استفاده نمود.
2) مقدار Value پارامتر اشاره کننده باید به صورت Hash شده در آید. مقدار Hash در بانک اطلاعاتی نگه داری شود و در هر بار اشاره، Hash در بانک اطلاعاتی به صورت غیر مستقیم به Object اشاره می نماید.
3) Bind نمودن Object های هر کاربر به Session او و رمز نمودن مقدار Session به نحوی که برای عموم قابل بازگشایی نباشد.

میلاد خوشدل

در حوزه‌ی امنیت وب و شبکه فعالیت می کند، عاشق پارکور است و مدیریت دیتاسنتر، امن سازی شبکه های مخابراتی و کابلی و برنامه نویسی وب و موبایل از تجارب کاری او می باشد. او در حال حاضر بنیانگذار ریجاکس است.

نظر خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

4 × چهار =


تگ های html مجاز به استفاده می باشند: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ارسال یک پیام