A10:2025 — Mishandling of Exceptional Conditions؛ باگهایی که فقط در حالت خطا ظاهر میشوند
آخرین رتبهی OWASP Top 10:2025 به مسیرهای کمتردیدهشدهی کد — یعنی مدیریت خطا و شرایط استثنایی — میپردازد.
این دسته به رفتار برنامه در «مسیرهای غیرعادی» میپردازد: چه اتفاقی میافتد وقتی یک عملیات (پرداخت، آپلود فایل، فراخوانی یک API خارجی) با خطا مواجه میشود؟ بسیاری از برنامهها مسیر موفقیتآمیز (happy path) را بسیار دقیق تست میکنند، اما مسیرهای خطا را نه.
نمونهی ملموس
اگر یک فرآیند پرداخت، در صورت timeout سرویس بانک، بهاشتباه سفارش را «موفق» ثبت کند (چون کد فقط برای حالت خطای صریح طراحی شده، نه timeout)، این یک Mishandling of Exceptional Condition کلاسیک است که مستقیماً خسارت مالی ایجاد میکند.
چرا تست آن سخت است
شبیهسازی شرایط استثنایی واقعی (timeout شبکه، سرویس خارجی از کار افتاده، دیسک پر) نیاز به تستهای خاص دارد که معمولاً در چرخهی تست عادی لحاظ نمیشوند.
اصل کلی
هر مسیر خطا باید بهصورت صریح به حالت «امنترین نتیجهی ممکن» (fail securely) طراحی شود — نه فرض ضمنی موفقیت.