در حال بارگذاری...
آشنایی با مفاهیم پایه تست منطق تجاری (Business Logic Testing)، اهمیت آن در امنیت برنامههای وب و روششناسی کلی انجام این تستها.
اهداف این درس
منطق تجاری (Business Logic) به قوانین، فرآیندها و محدودیتهایی اشاره دارد که نحوه عملکرد یک برنامه کاربردی را تعیین میکنند. این شامل فرآیندهایی مثل ثبتسفارش، پرداخت، مدیریت موجودی و تأیید هویت کاربران است.
نوعی آسیبپذیری که ناشی از ضعف در طراحی فرآیندهای کسبوکار است و به مهاجم اجازه میدهد با سوءاستفاده از منطق برنامه، عملیات غیرمجاز انجام دهد.
| نوع | توضیح | مثال |
|---|---|---|
| دور زدن فرآیند | رد شدن از مراحل ضروری فرآیند | پرداخت بدون تأیید سفارش |
| سوءاستفاده از محدودیتها | نقض محدودیتهای کسبوکار | استفاده چندباره از کد تخفیف یکبارمصرف |
| تغییر ترتیب مراحل | انجام مراحل فرآیند به ترتیب نادرست | تأیید ایمیل بعد از دسترسی به حساب |
| سوءاستفاده از قیمتگذاری | تغییر قیمت یا شرایط فروش | تغییر قیمت در درخواست HTTP |
تمام فرآیندهای اصلی برنامه را شناسایی و مستند کنید. شامل فرآیندهای ثبتنام، خرید، پرداخت، مدیریت حساب و هر فرآیندی که منطق کسبوکار دارد.
محدودیتها و قوانین هر فرآیند را شناسایی کنید: حداقل و حداکثر مقادیر، تعداد مجاز تکرار، شرایط پیشنیاز و ترتیب مراحل.
تمام یافتهها را با جزئیات مستند کنید: شرح آسیبپذیری، نحوه سوءاستفاده، تأثیر و راهحل پیشنهادی.
هشدار
تست منطق تجاری نیاز به درک عمیق فرآیند کسبوکار دارد. بدون شناخت کافی از فرآیند، تست مؤثر امکانپذیر نیست.
توصیه عملی
قبل از شروع تست، فلوچارت فرآیندهای کسبوکار را رسم کنید و تمام مسیرهای ممکن را شناسایی کنید.
آسیبپذیریهای منطق تجاری از ضعف طراحی ناشی میشوند، نه از باگهای کد.
ابزارهای اسکن خودکار نمیتوانند این آسیبپذیریها را شناسایی کنند.
درک عمیق فرآیند کسبوکار برای تست مؤثر ضروری است.
این آسیبپذیریها میتوانند خسارات مالی جدی ایجاد کنند.
آسیبپذیریهای منطق تجاری عمدتاً ناشی از چه چیزی هستند؟
چرا آسیبپذیریهای منطق تجاری توسط ابزارهای خودکار قابل شناسایی نیستند؟
زیرا این آسیبپذیریها ناشی از ضعف در طراحی فرآیند هستند و نه از الگوهای کد ناامن. ابزارها نمیتوانند منطق کسبوکار را درک کنند.
مهمترین تفاوت آسیبپذیریهای فنی و منطقی چیست؟
آسیبپذیریهای فنی ناشی از پیادهسازی ناامن هستند (مثل XSS، SQLi)، در حالی که آسیبپذیریهای منطقی ناشی از ضعف طراحی فرآیند هستند.